diff --git a/common/src/main/java/org/saturnclient/modules/ModManager.java b/common/src/main/java/org/saturnclient/modules/ModManager.java index e4e068e..9df1859 100644 --- a/common/src/main/java/org/saturnclient/modules/ModManager.java +++ b/common/src/main/java/org/saturnclient/modules/ModManager.java @@ -8,24 +8,24 @@ import org.saturnclient.modules.mods.*; public class ModManager { public static final List ENABLED_MODS = new ArrayList<>(); public static final Module[] ALL_MODS = { - new Crosshair(), - new AutoSprint(), + // new Crosshair(), + // new AutoSprint(), new ArmorDisplay(), - new Fps(), - new StatusEffects(), - new Coordinates(), - new Freelook(), - new Keystrokes(), - new Fullbright(), - new NoFog(), - new DayCounter(), - new Speedometer(), - new Zoom(), - new HealthDisplay(), - new Nametags(), - new Ping(), - new Tps(), - new Clock() + // new Fps(), + // new StatusEffects(), + // new Coordinates(), + // new Freelook(), + // new Keystrokes(), + // new Fullbright(), + // new NoFog(), + // new DayCounter(), + // new Speedometer(), + // new Zoom(), + // new HealthDisplay(), + // new Nametags(), + // new Ping(), + // new Tps(), + // new Clock() }; public static void init() { @@ -45,8 +45,4 @@ public class ModManager { public static Module[] getAllMods() { return ALL_MODS; } - - public static void refreshEnabledModules() { - updateEnabledModules(); - } } diff --git a/common/src/main/java/org/saturnclient/modules/interfaces/ArmorDisplayInterface.java b/common/src/main/java/org/saturnclient/modules/interfaces/ArmorDisplayInterface.java new file mode 100644 index 0000000..1c9124e --- /dev/null +++ b/common/src/main/java/org/saturnclient/modules/interfaces/ArmorDisplayInterface.java @@ -0,0 +1,32 @@ +package org.saturnclient.modules.interfaces; + +import org.saturnclient.common.minecraft.bindings.SaturnItemStack; + +public interface ArmorDisplayInterface { + + SaturnItemStack getMainHand(); + + SaturnItemStack getHelmet(); + + SaturnItemStack getChestplate(); + + SaturnItemStack getLeggings(); + + SaturnItemStack getBoots(); + + SaturnItemStack getDummyMainHand(); + + SaturnItemStack getDummyHelmet(); + + SaturnItemStack getDummyChestplate(); + + SaturnItemStack getDummyLeggings(); + + SaturnItemStack getDummyBoots(); + + boolean isEmpty(SaturnItemStack stack); + + int getMaxDamage(SaturnItemStack stack); + + int getDamage(SaturnItemStack stack); +} \ No newline at end of file diff --git a/common/src/main/java/org/saturnclient/modules/mods/ArmorDisplay.java b/common/src/main/java/org/saturnclient/modules/mods/ArmorDisplay.java new file mode 100644 index 0000000..3b09d40 --- /dev/null +++ b/common/src/main/java/org/saturnclient/modules/mods/ArmorDisplay.java @@ -0,0 +1,118 @@ +package org.saturnclient.modules.mods; + +import org.saturnclient.modules.HudMod; +import org.saturnclient.modules.ModDimensions; +import org.saturnclient.modules.Module; +import org.saturnclient.modules.ModuleDetails; +import org.saturnclient.modules.interfaces.ArmorDisplayInterface; +import org.saturnclient.common.minecraft.bindings.SaturnItemStack; +import org.saturnclient.config.manager.Property; +import org.saturnclient.ui.RenderScope; + +public class ArmorDisplay extends Module implements HudMod { + + private static Property enabled = Property.bool(false); + private static ModDimensions dimensions = new ModDimensions(40, 75); + private static Property useMainHand = Property.bool(false); + + private final ArmorDisplayInterface minecraft; + + public ArmorDisplay(ArmorDisplayInterface minecraft) { + super(new ModuleDetails("Armor Display", "armor") + .description("Displays armor durability") + .version("v0.1.0") + .tags("Utility"), + enabled.named("Enabled"), + useMainHand.named("Use Main Hand"), + dimensions.prop()); + + this.minecraft = minecraft; + } + + public void renderArmor(RenderScope scope, + SaturnItemStack mainHand, + SaturnItemStack helmet, + SaturnItemStack chestplate, + SaturnItemStack leggings, + SaturnItemStack boots) { + + int row = 0; + + if (useMainHand.value && !minecraft.isEmpty(mainHand)) { + scope.drawItem(mainHand, 0, 15 * row); + renderHealth(scope, row, minecraft.getMaxDamage(mainHand), minecraft.getDamage(mainHand)); + row++; + } + + if (!minecraft.isEmpty(helmet)) { + scope.drawItem(helmet, 0, 15 * row); + renderHealth(scope, row, minecraft.getMaxDamage(helmet), minecraft.getDamage(helmet)); + row++; + } + + if (!minecraft.isEmpty(chestplate)) { + scope.drawItem(chestplate, 0, 15 * row); + renderHealth(scope, row, minecraft.getMaxDamage(chestplate), minecraft.getDamage(chestplate)); + row++; + } + + if (!minecraft.isEmpty(leggings)) { + scope.drawItem(leggings, 0, 15 * row); + renderHealth(scope, row, minecraft.getMaxDamage(leggings), minecraft.getDamage(leggings)); + row++; + } + + if (!minecraft.isEmpty(boots)) { + scope.drawItem(boots, 0, 15 * row); + renderHealth(scope, row, minecraft.getMaxDamage(boots), minecraft.getDamage(boots)); + row++; + } + } + + public void renderHealth(RenderScope scope, int i, int maxDamage, int damage) { + if (maxDamage > 0) { + scope.drawText( + 0.5f, + "" + (maxDamage - damage), + 17, + (15 * i) + 3, + dimensions.font.value, + dimensions.fgColor.value); + } + } + + @Override + public void renderHud(RenderScope scope) { + renderArmor(scope, + minecraft.getMainHand(), + minecraft.getHelmet(), + minecraft.getChestplate(), + minecraft.getLeggings(), + minecraft.getBoots()); + } + + @Override + public void renderDummy(RenderScope scope) { + renderArmor(scope, + minecraft.getDummyMainHand(), + minecraft.getDummyHelmet(), + minecraft.getDummyChestplate(), + minecraft.getDummyLeggings(), + minecraft.getDummyBoots()); + } + + @Override + public ModDimensions getDimensions() { + return dimensions; + } + + @Override + public boolean isEnabled() { + return enabled.value; + } + + @Override + public void onEnabled(boolean e) { + enabled.value = e; + } +} diff --git a/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/ArmorDisplayFabric.java b/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/ArmorDisplayFabric.java new file mode 100644 index 0000000..4e821c6 --- /dev/null +++ b/versions/1.21.4/src/main/java/org/saturnclient/impl/modules/ArmorDisplayFabric.java @@ -0,0 +1,83 @@ +package org.saturnclient.impl.modules; + +import org.saturnclient.common.minecraft.bindings.SaturnItemStack; +import org.saturnclient.modules.interfaces.ArmorDisplayInterface; + +import net.minecraft.client.MinecraftClient; +import net.minecraft.entity.EquipmentSlot; +import net.minecraft.item.ItemStack; +import net.minecraft.item.Items; + +public class ArmorDisplayFabric implements ArmorDisplayInterface { + + private ItemStack get(EquipmentSlot slot) { + return MinecraftClient.getInstance().player.getEquippedStack(slot); + } + + @Override + public SaturnItemStack getMainHand() { + return new SaturnItemStack(get(EquipmentSlot.MAINHAND)); + } + + @Override + public SaturnItemStack getHelmet() { + return new SaturnItemStack(get(EquipmentSlot.HEAD)); + } + + @Override + public SaturnItemStack getChestplate() { + return new SaturnItemStack(get(EquipmentSlot.CHEST)); + } + + @Override + public SaturnItemStack getLeggings() { + return new SaturnItemStack(get(EquipmentSlot.LEGS)); + } + + @Override + public SaturnItemStack getBoots() { + return new SaturnItemStack(get(EquipmentSlot.FEET)); + } + + @Override + public boolean isEmpty(SaturnItemStack stack) { + return ((ItemStack) stack.get()).isEmpty(); + } + + @Override + public int getMaxDamage(SaturnItemStack stack) { + return ((ItemStack) stack.get()).getMaxDamage(); + } + + @Override + public int getDamage(SaturnItemStack stack) { + return ((ItemStack) stack.get()).getDamage(); + } + + // Dummy items + + @Override + public SaturnItemStack getDummyMainHand() { + return new SaturnItemStack(new ItemStack(Items.DIAMOND_SWORD)); + } + + @Override + public SaturnItemStack getDummyHelmet() { + return new SaturnItemStack(new ItemStack(Items.DIAMOND_HELMET)); + } + + @Override + public SaturnItemStack getDummyChestplate() { + return new SaturnItemStack(new ItemStack(Items.DIAMOND_CHESTPLATE)); + } + + @Override + public SaturnItemStack getDummyLeggings() { + return new SaturnItemStack(new ItemStack(Items.DIAMOND_LEGGINGS)); + } + + @Override + public SaturnItemStack getDummyBoots() { + return new SaturnItemStack(new ItemStack(Items.DIAMOND_BOOTS)); + } +} \ No newline at end of file diff --git a/versions/1.21.4/src/main/java/org/saturnclient/modules/mods/ArmorDisplay.java b/versions/1.21.4/src/main/java/org/saturnclient/modules/mods/ArmorDisplay.java deleted file mode 100644 index 84fe828..0000000 --- a/versions/1.21.4/src/main/java/org/saturnclient/modules/mods/ArmorDisplay.java +++ /dev/null @@ -1,103 +0,0 @@ -package org.saturnclient.modules.mods; - -import org.saturnclient.modules.HudMod; -import org.saturnclient.modules.ModDimensions; -import org.saturnclient.modules.Module; -import org.saturnclient.modules.ModuleDetails; -import org.saturnclient.saturnclient.SaturnClient; -import org.saturnclient.common.minecraft.bindings.SaturnItemStack; -import org.saturnclient.config.manager.Property; -import org.saturnclient.ui.RenderScope; - -import net.minecraft.entity.EquipmentSlot; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; - -public class ArmorDisplay extends Module implements HudMod { - private static Property enabled = Property.bool(false); - private static ModDimensions dimensions = new ModDimensions(40, 75); - private static Property useMainHand = Property.bool(false); - - public ArmorDisplay() { - super(new ModuleDetails("Armor Display", "armor") - .description("Displays armor durability") - .version("v0.1.0") - .tags("Utility"), - enabled.named("Enabled"), - useMainHand.named("Use Main Hand"), - dimensions.prop()); - } - - public void renderArmor(RenderScope scope, ItemStack mainHand, ItemStack helmet, ItemStack chestplate, - ItemStack leggings, ItemStack boots) { - int row = 0; - - if (useMainHand.value && !mainHand.isEmpty()) { - scope.drawItem(new SaturnItemStack(mainHand), 0, 15 * row); - renderHealth(scope, row, mainHand.getMaxDamage(), mainHand.getDamage()); - row++; - } - - if (!helmet.isEmpty()) { - scope.drawItem(new SaturnItemStack(helmet), 0, 15 * row); - renderHealth(scope, row, helmet.getMaxDamage(), helmet.getDamage()); - row++; - } - - if (!chestplate.isEmpty()) { - scope.drawItem(new SaturnItemStack(chestplate), 0, 15 * row); - renderHealth(scope, row, chestplate.getMaxDamage(), chestplate.getDamage()); - row++; - } - if (!leggings.isEmpty()) { - scope.drawItem(new SaturnItemStack(leggings), 0, 15 * row); - renderHealth(scope, row, leggings.getMaxDamage(), leggings.getDamage()); - row++; - } - - if (!boots.isEmpty()) { - scope.drawItem(new SaturnItemStack(boots), 0, 15 * row); - renderHealth(scope, row, boots.getMaxDamage(), boots.getDamage()); - row++; - } - } - - public void renderHealth(RenderScope scope, int i, int max_damage, int damage) { - if (max_damage > 0) { - scope.drawText(0.5f, "" + (max_damage - damage), 17, (15 * i) + 3, dimensions.font.value, - dimensions.fgColor.value); - } - } - - @Override - public void renderHud(RenderScope scope) { - renderArmor(scope, - SaturnClient.client.player.getEquippedStack(EquipmentSlot.MAINHAND), - SaturnClient.client.player.getEquippedStack(EquipmentSlot.HEAD), - SaturnClient.client.player.getEquippedStack(EquipmentSlot.CHEST), - SaturnClient.client.player.getEquippedStack(EquipmentSlot.LEGS), - SaturnClient.client.player.getEquippedStack(EquipmentSlot.FEET)); - } - - @Override - public void renderDummy(RenderScope scope) { - renderArmor(scope, new ItemStack(Items.DIAMOND_SWORD), new ItemStack(Items.DIAMOND_HELMET), - new ItemStack(Items.DIAMOND_CHESTPLATE), - new ItemStack(Items.DIAMOND_LEGGINGS), new ItemStack(Items.DIAMOND_BOOTS)); - } - - @Override - public ModDimensions getDimensions() { - return dimensions; - } - - @Override - public boolean isEnabled() { - return enabled.value; - } - - @Override - public void onEnabled(boolean e) { - enabled.value = e; - } -}