From 87ca99fb3ceea93a592ae14d9c59076ba0b21688 Mon Sep 17 00:00:00 2001 From: lukasabbe <67807954+lukasabbe@users.noreply.github.com> Date: Sat, 21 Feb 2026 13:25:08 +0100 Subject: [PATCH] Added alot of config options --- .../simplehud/config/HudPosition.java | 2 +- .../lukasabbe/simplehud/config/ModMenu.java | 24 ++++++++++++++++++- .../com/lukasabbe/simplehud/huds/BoatHud.java | 6 +++++ .../lukasabbe/simplehud/huds/ElytraHud.java | 6 +++++ .../simplehud/huds/HappyGhastHud.java | 6 +++++ .../lukasabbe/simplehud/huds/HorseHud.java | 6 +++++ .../lukasabbe/simplehud/huds/MinecartHud.java | 6 +++++ .../lukasabbe/simplehud/huds/NautilusHud.java | 6 +++++ .../lukasabbe/simplehud/huds/SimpleHud.java | 3 ++- .../lukasabbe/simplehud/huds/StriderHud.java | 6 +++++ .../assets/simplehud/lang/en_us.json | 11 ++++++++- 11 files changed, 78 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/lukasabbe/simplehud/config/HudPosition.java b/src/main/java/com/lukasabbe/simplehud/config/HudPosition.java index fc1e716..ca19061 100644 --- a/src/main/java/com/lukasabbe/simplehud/config/HudPosition.java +++ b/src/main/java/com/lukasabbe/simplehud/config/HudPosition.java @@ -12,6 +12,6 @@ public enum HudPosition implements NameableEnum { @Override public Component getDisplayName() { - return null; + return Component.translatable("simple_hud.config.position." + name().toLowerCase()); } } diff --git a/src/main/java/com/lukasabbe/simplehud/config/ModMenu.java b/src/main/java/com/lukasabbe/simplehud/config/ModMenu.java index 8ca2a1a..e686a59 100644 --- a/src/main/java/com/lukasabbe/simplehud/config/ModMenu.java +++ b/src/main/java/com/lukasabbe/simplehud/config/ModMenu.java @@ -27,12 +27,20 @@ public class ModMenu implements ModMenuApi { .name(Component.translatable("simple_hud.config.category.general.name")) .tooltip(Component.translatable("simple_hud.config.category.general.tooltip")) .group(toggleOptions()) - .option(Option.createBuilder() + .option(Option + .createBuilder() .name(Component.translatable("simple_hud.config.category.general.option.scale.name")) .description(OptionDescription.of(Component.translatable("simple_hud.config.category.general.option.scale.description"))) .binding(10, () -> instance.hudScale, newVal -> instance.hudScale = newVal) .controller(opt -> IntegerSliderControllerBuilder.create(opt).range(0,20).step(1)) .build()) + .option(Option + .createBuilder() + .name(Component.translatable("simple_hud.config.category.general.option.safe_area.name")) + .description(OptionDescription.of(Component.translatable("simple_hud.config.category.general.option.safe_area.description"))) + .binding(false, () -> instance.ignoreSafeArea, newVal -> instance.ignoreSafeArea = newVal) + .controller(TickBoxControllerBuilder::create) + .build()) .build() ) .category(ConfigCategory @@ -45,6 +53,13 @@ public class ModMenu implements ModMenuApi { .binding(SpeedEnum.kmh, () -> instance.speedEnumElytra, newVal -> instance.speedEnumElytra = newVal) .customController(opt -> new EnumController<>(opt, SpeedEnum.class)) .build()) + .option(Option + .createBuilder() + .name(Component.translatable("simple_hud.config.category.elytra_options.option.hud_position.name")) + .description(OptionDescription.of(Component.translatable("simple_hud.config.category.elytra_options.option.hud_position.description"))) + .binding(HudPosition.CENTER, () -> instance.hudPositionElytra, newVal -> instance.hudPositionElytra = newVal) + .customController(opt -> new EnumController<>(opt, HudPosition.class)) + .build()) .build()) .category(ConfigCategory .createBuilder() @@ -56,6 +71,13 @@ public class ModMenu implements ModMenuApi { .binding(SpeedEnum.kmh, () -> instance.speedEnumBoat, newVal -> instance.speedEnumBoat = newVal) .customController(opt -> new EnumController<>(opt, SpeedEnum.class)) .build()) + .option(Option + .createBuilder() + .name(Component.translatable("simple_hud.config.category.elytra_options.option.hud_position.name")) + .description(OptionDescription.of(Component.translatable("simple_hud.config.category.elytra_options.option.hud_position.description"))) + .binding(HudPosition.CENTER, () -> instance.hudPositionBoat, newVal -> instance.hudPositionBoat = newVal) + .customController(opt -> new EnumController<>(opt, HudPosition.class)) + .build()) .build()) .save(() -> Config.HANDLER.save()) .build().generateScreen(parent); diff --git a/src/main/java/com/lukasabbe/simplehud/huds/BoatHud.java b/src/main/java/com/lukasabbe/simplehud/huds/BoatHud.java index 6a7dd78..d2068bb 100644 --- a/src/main/java/com/lukasabbe/simplehud/huds/BoatHud.java +++ b/src/main/java/com/lukasabbe/simplehud/huds/BoatHud.java @@ -2,6 +2,7 @@ package com.lukasabbe.simplehud.huds; import com.lukasabbe.simplehud.Constants; import com.lukasabbe.simplehud.config.Config; +import com.lukasabbe.simplehud.config.HudPosition; import com.lukasabbe.simplehud.tools.EntityTools; import net.minecraft.client.DeltaTracker; import net.minecraft.client.gui.GuiGraphics; @@ -201,4 +202,9 @@ public class BoatHud implements SimpleHud { public Identifier getIdentifier() { return Constants.BoatHudIdentifier; } + + @Override + public HudPosition getHudPosition() { + return Config.HANDLER.instance().hudPositionBoat; + } } diff --git a/src/main/java/com/lukasabbe/simplehud/huds/ElytraHud.java b/src/main/java/com/lukasabbe/simplehud/huds/ElytraHud.java index 59f173f..854b2ec 100644 --- a/src/main/java/com/lukasabbe/simplehud/huds/ElytraHud.java +++ b/src/main/java/com/lukasabbe/simplehud/huds/ElytraHud.java @@ -2,6 +2,7 @@ package com.lukasabbe.simplehud.huds; import com.lukasabbe.simplehud.Constants; import com.lukasabbe.simplehud.config.Config; +import com.lukasabbe.simplehud.config.HudPosition; import com.lukasabbe.simplehud.tools.ElytraTools; import net.minecraft.client.DeltaTracker; import net.minecraft.client.gui.GuiGraphics; @@ -148,4 +149,9 @@ public class ElytraHud implements SimpleHud { return Constants.ElytraHudIdentifier; } + @Override + public HudPosition getHudPosition() { + return Config.HANDLER.instance().hudPositionElytra; + } + } diff --git a/src/main/java/com/lukasabbe/simplehud/huds/HappyGhastHud.java b/src/main/java/com/lukasabbe/simplehud/huds/HappyGhastHud.java index 053e2d7..518e230 100644 --- a/src/main/java/com/lukasabbe/simplehud/huds/HappyGhastHud.java +++ b/src/main/java/com/lukasabbe/simplehud/huds/HappyGhastHud.java @@ -1,5 +1,6 @@ package com.lukasabbe.simplehud.huds; +import com.lukasabbe.simplehud.config.HudPosition; import net.minecraft.resources.Identifier; public class HappyGhastHud extends RideableHud{ @@ -7,4 +8,9 @@ public class HappyGhastHud extends RideableHud{ public Identifier getIdentifier() { return null; } + + @Override + public HudPosition getHudPosition() { + return null; + } } diff --git a/src/main/java/com/lukasabbe/simplehud/huds/HorseHud.java b/src/main/java/com/lukasabbe/simplehud/huds/HorseHud.java index ffe296c..f653f66 100644 --- a/src/main/java/com/lukasabbe/simplehud/huds/HorseHud.java +++ b/src/main/java/com/lukasabbe/simplehud/huds/HorseHud.java @@ -1,5 +1,6 @@ package com.lukasabbe.simplehud.huds; +import com.lukasabbe.simplehud.config.HudPosition; import net.minecraft.resources.Identifier; public class HorseHud extends RideableHud { @@ -7,4 +8,9 @@ public class HorseHud extends RideableHud { public Identifier getIdentifier() { return null; } + + @Override + public HudPosition getHudPosition() { + return null; + } } diff --git a/src/main/java/com/lukasabbe/simplehud/huds/MinecartHud.java b/src/main/java/com/lukasabbe/simplehud/huds/MinecartHud.java index e77ae3e..027e42c 100644 --- a/src/main/java/com/lukasabbe/simplehud/huds/MinecartHud.java +++ b/src/main/java/com/lukasabbe/simplehud/huds/MinecartHud.java @@ -2,6 +2,7 @@ package com.lukasabbe.simplehud.huds; import com.lukasabbe.simplehud.Constants; import com.lukasabbe.simplehud.config.Config; +import com.lukasabbe.simplehud.config.HudPosition; import com.lukasabbe.simplehud.tools.EntityTools; import net.minecraft.client.DeltaTracker; import net.minecraft.client.gui.GuiGraphics; @@ -134,4 +135,9 @@ public class MinecartHud implements SimpleHud { public Identifier getIdentifier() { return Constants.MinecartHudIdentifier; } + + @Override + public HudPosition getHudPosition() { + return Config.HANDLER.instance().hudPositionMinecart; + } } diff --git a/src/main/java/com/lukasabbe/simplehud/huds/NautilusHud.java b/src/main/java/com/lukasabbe/simplehud/huds/NautilusHud.java index 9515f92..249bc1b 100644 --- a/src/main/java/com/lukasabbe/simplehud/huds/NautilusHud.java +++ b/src/main/java/com/lukasabbe/simplehud/huds/NautilusHud.java @@ -1,5 +1,6 @@ package com.lukasabbe.simplehud.huds; +import com.lukasabbe.simplehud.config.HudPosition; import net.minecraft.resources.Identifier; public class NautilusHud extends RideableHud { @@ -7,4 +8,9 @@ public class NautilusHud extends RideableHud { public Identifier getIdentifier() { return null; } + + @Override + public HudPosition getHudPosition() { + return null; + } } diff --git a/src/main/java/com/lukasabbe/simplehud/huds/SimpleHud.java b/src/main/java/com/lukasabbe/simplehud/huds/SimpleHud.java index 60cc5c5..a17f04c 100644 --- a/src/main/java/com/lukasabbe/simplehud/huds/SimpleHud.java +++ b/src/main/java/com/lukasabbe/simplehud/huds/SimpleHud.java @@ -31,6 +31,7 @@ public interface SimpleHud { void render(GuiGraphics graphics, DeltaTracker tracker); Identifier getIdentifier(); + HudPosition getHudPosition(); default boolean isHudActivated(){ return Config.HANDLER.instance().HudActivatedList.get(getIdentifier().toShortString()); @@ -106,7 +107,7 @@ public interface SimpleHud { int screenWidth = client.getWindow().getGuiScaledWidth(); int screenHeight = client.getWindow().getGuiScaledHeight(); - int[] pos = calculateHudPosition(screenWidth, screenHeight, Config.HANDLER.instance().hudPositionElytra); + int[] pos = calculateHudPosition(screenWidth, screenHeight, getHudPosition()); int x = pos[0] - backPlateCenteredX; int y = pos[1] - backPlateCenteredY; return new int[]{x, y}; diff --git a/src/main/java/com/lukasabbe/simplehud/huds/StriderHud.java b/src/main/java/com/lukasabbe/simplehud/huds/StriderHud.java index 611af35..6f12cd2 100644 --- a/src/main/java/com/lukasabbe/simplehud/huds/StriderHud.java +++ b/src/main/java/com/lukasabbe/simplehud/huds/StriderHud.java @@ -1,5 +1,6 @@ package com.lukasabbe.simplehud.huds; +import com.lukasabbe.simplehud.config.HudPosition; import net.minecraft.resources.Identifier; public class StriderHud extends RideableHud{ @@ -7,4 +8,9 @@ public class StriderHud extends RideableHud{ public Identifier getIdentifier() { return null; } + + @Override + public HudPosition getHudPosition() { + return null; + } } diff --git a/src/main/resources/assets/simplehud/lang/en_us.json b/src/main/resources/assets/simplehud/lang/en_us.json index c71cdfb..015fa38 100644 --- a/src/main/resources/assets/simplehud/lang/en_us.json +++ b/src/main/resources/assets/simplehud/lang/en_us.json @@ -12,11 +12,20 @@ "simple_hud.config.speed_enum.kmh": "km/h", "simple_hud.config.speed_enum.mph": "MPH", "simple_hud.config.speed_enum.ms": "m/s", + "simple_hud.config.position.center": "Center", + "simple_hud.config.position.top_left": "Top Left", + "simple_hud.config.position.top_right": "Top Right", + "simple_hud.config.position.bottom_left": "Bottom Left", + "simple_hud.config.position.bottom_right": "Bottom Right", "simple_hud.config.category.boat_hud.name": "Boat HUD options", "simple_hud.config.category.general.group.activated_huds.option.boat_hud.name": "Boat HUD", "simple_hud.config.category.general.group.activated_huds.option.boat_hud.description": "Boat Hud toggle", "simple_hud.config.category.general.option.scale.description": "Change the scale of the HUD", "simple_hud.config.category.general.option.scale.name": "Scale", "simple_hud.config.category.general.group.activated_huds.option.minecart_hud.name": "Minecart HUD", - "simple_hud.config.category.general.group.activated_huds.option.minecart_hud.description": "Minecart Hud toggle" + "simple_hud.config.category.general.group.activated_huds.option.minecart_hud.description": "Minecart Hud toggle", + "simple_hud.config.category.general.option.safe_area.name": "Ignore Safe Area", + "simple_hud.config.category.general.option.safe_area.description": "Move HUD to screen edges, ignoring GUI safe area margins", + "simple_hud.config.category.elytra_options.option.hud_position.name": "HUD Position", + "simple_hud.config.category.elytra_options.option.hud_position.description": "Change the position of the HUD on screen" } \ No newline at end of file