A mod that adds your armor to the hud modrinth.com/mod/simple-armor-hud
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat: now using OptionsSubscreen correctly

legoraft e0695aa2 58aadd22

+45 -13
+11 -6
src/client/java/com/armorhud/config/config.java
··· 22 22 private static final Path CONFIG_PATH = FabricLoader.getInstance().getConfigDir().resolve("armorhud.properties"); 23 23 24 24 public enum Position { 25 - FOODBAR, 26 - HEALTHBAR, 27 - HOTBAR_LEFT, 28 - HOTBAR_RIGHT; 25 + FOODBAR("config.armorposition.foodbar"), 26 + HEALTHBAR("config.armorposition.healthbar"), 27 + HOTBAR_LEFT("config.armorposition.hotbar_left"), 28 + HOTBAR_RIGHT("config.armorposition.hotbar_right"); 29 + 30 + private final String key; 31 + Position(String key) { 32 + this.key = key; 33 + } 29 34 30 - public Component displayName() { 31 - return Component.translatable("config.armorposition." + name().toLowerCase()); 35 + public Component getDisplayName() { 36 + return Component.translatable(this.key); 32 37 } 33 38 } 34 39
+34 -7
src/client/java/com/armorhud/config/configScreen.java
··· 3 3 import net.fabricmc.api.EnvType; 4 4 import net.fabricmc.api.Environment; 5 5 import net.minecraft.client.Minecraft; 6 + import net.minecraft.client.OptionInstance; 6 7 import net.minecraft.client.gui.GuiGraphicsExtractor; 7 8 import net.minecraft.client.gui.components.Button; 8 9 import net.minecraft.client.gui.components.CycleButton; ··· 11 12 import net.minecraft.client.gui.screens.options.OptionsSubScreen; 12 13 import net.minecraft.client.gui.layouts.*; 13 14 import net.minecraft.network.chat.Component; 15 + 16 + import javax.swing.text.html.Option; 14 17 15 18 @Environment(EnvType.CLIENT) 16 19 public class configScreen extends OptionsSubScreen { ··· 31 34 32 35 public Button doneButton; 33 36 37 + /* 34 38 @Override 35 39 protected void init() { 36 40 doubleHotbarToggle = CycleButton.onOffBuilder(config.DOUBLE_HOTBAR) ··· 72 76 73 77 addRenderableWidget(doneButton); 74 78 } 79 + */ 75 80 76 81 @Override 77 - protected void addOptions() { } 82 + protected void addOptions() { 83 + assert this.list != null; 84 + 85 + OptionInstance<config.Position> armorPositionOptions = new OptionInstance<>( 86 + "config.armorposition", 87 + OptionInstance.noTooltip(), 88 + (component, value) -> value.getDisplayName(), 89 + new OptionInstance.Enum<>(java.util.List.of(config.Position.values()), null), 90 + config.position, 91 + value -> config.position = value 92 + ); 93 + 94 + this.list.addHeader(Component.translatable("config.header.general")); 95 + this.list.addSmall( 96 + OptionInstance.createBoolean("config.armorvisible", config.ARMOR_HUD, v -> config.ARMOR_HUD = v), 97 + OptionInstance.createBoolean("config.disablearmorbar", config.DISABLE_ARMOR_BAR, v -> config.DISABLE_ARMOR_BAR = v) 98 + ); 78 99 79 - @Override 80 - public void extractRenderState(GuiGraphicsExtractor context, int mouseX, int mouseY, float delta) { 81 - context.centeredText(this.font, Component.translatable("config.title"), this.width / 2, 12, 0xffffff); 82 - super.extractRenderState(context, mouseX, mouseY, delta); 100 + this.list.addHeader(Component.translatable("config.header.compatibility")); 101 + this.list.addSmall( 102 + OptionInstance.createBoolean("config.doublehotbar", config.DOUBLE_HOTBAR, v -> config.DOUBLE_HOTBAR = v), 103 + OptionInstance.createBoolean("config.bettermounthud", config.BETTER_MOUNT_HUD, v -> config.BETTER_MOUNT_HUD = v) 104 + ); 105 + 106 + this.list.addHeader(Component.translatable("config.header.display")); 107 + this.list.addSmall( 108 + OptionInstance.createBoolean("config.righttoleft", config.RTL, v -> config.RTL = v), 109 + OptionInstance.createBoolean("config.trimemptyslots", config.TRIM_EMPTY_SLOTS, v -> config.TRIM_EMPTY_SLOTS = v), 110 + armorPositionOptions 111 + ); 83 112 } 84 113 85 114 @Override 86 115 public void onClose() { 87 - assert this.minecraft != null; 88 - 89 116 config.save(); 90 117 this.minecraft.setScreen(this.parent); 91 118 }