Armor display mod
This commit is contained in:
@@ -8,24 +8,24 @@ import org.saturnclient.modules.mods.*;
|
|||||||
public class ModManager {
|
public class ModManager {
|
||||||
public static final List<Module> ENABLED_MODS = new ArrayList<>();
|
public static final List<Module> ENABLED_MODS = new ArrayList<>();
|
||||||
public static final Module[] ALL_MODS = {
|
public static final Module[] ALL_MODS = {
|
||||||
new Crosshair(),
|
// new Crosshair(),
|
||||||
new AutoSprint(),
|
// new AutoSprint(),
|
||||||
new ArmorDisplay(),
|
new ArmorDisplay(),
|
||||||
new Fps(),
|
// new Fps(),
|
||||||
new StatusEffects(),
|
// new StatusEffects(),
|
||||||
new Coordinates(),
|
// new Coordinates(),
|
||||||
new Freelook(),
|
// new Freelook(),
|
||||||
new Keystrokes(),
|
// new Keystrokes(),
|
||||||
new Fullbright(),
|
// new Fullbright(),
|
||||||
new NoFog(),
|
// new NoFog(),
|
||||||
new DayCounter(),
|
// new DayCounter(),
|
||||||
new Speedometer(),
|
// new Speedometer(),
|
||||||
new Zoom(),
|
// new Zoom(),
|
||||||
new HealthDisplay(),
|
// new HealthDisplay(),
|
||||||
new Nametags(),
|
// new Nametags(),
|
||||||
new Ping(),
|
// new Ping(),
|
||||||
new Tps(),
|
// new Tps(),
|
||||||
new Clock()
|
// new Clock()
|
||||||
};
|
};
|
||||||
|
|
||||||
public static void init() {
|
public static void init() {
|
||||||
@@ -45,8 +45,4 @@ public class ModManager {
|
|||||||
public static Module[] getAllMods() {
|
public static Module[] getAllMods() {
|
||||||
return ALL_MODS;
|
return ALL_MODS;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void refreshEnabledModules() {
|
|
||||||
updateEnabledModules();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
|
}
|
||||||
@@ -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<Boolean> enabled = Property.bool(false);
|
||||||
|
private static ModDimensions dimensions = new ModDimensions(40, 75);
|
||||||
|
private static Property<Boolean> 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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<Boolean> enabled = Property.bool(false);
|
|
||||||
private static ModDimensions dimensions = new ModDimensions(40, 75);
|
|
||||||
private static Property<Boolean> 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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user