From de243d28cb37cbc64ede5a6f334292261f548ac8 Mon Sep 17 00:00:00 2001 From: lukasabbe <67807954+lukasabbe@users.noreply.github.com> Date: Tue, 10 Feb 2026 19:58:45 +0100 Subject: [PATCH] Added in elytra support --- .../lukasabbe/simplehud/config/Config.java | 4 +- .../lukasabbe/simplehud/config/ModMenu.java | 64 ++++++++++ .../lukasabbe/simplehud/config/SpeedEnum.java | 2 +- .../lukasabbe/simplehud/huds/ElytraHud.java | 119 +++++++++++++++++- .../lukasabbe/simplehud/huds/SimpleHud.java | 30 ++++- .../simplehud/tools/ElytraTools.java | 27 +++- src/main/resources/assets/simplehud/icon.png | Bin 190079 -> 1054 bytes .../assets/simplehud/lang/en_us.json | 15 +++ .../assets/simplehud/textures/compass.png | Bin 0 -> 339 bytes .../simplehud/textures/compass_pointer.png | Bin 0 -> 90 bytes .../assets/simplehud/textures/green_arrow.png | Bin 0 -> 170 bytes .../simplehud/textures/off_green_arrow.png | Bin 0 -> 178 bytes .../simplehud/textures/off_red_arrow.png | Bin 0 -> 167 bytes .../assets/simplehud/textures/red_arrow.png | Bin 0 -> 161 bytes src/main/resources/fabric.mod.json | 3 + 15 files changed, 252 insertions(+), 12 deletions(-) create mode 100644 src/main/java/com/lukasabbe/simplehud/config/ModMenu.java create mode 100644 src/main/resources/assets/simplehud/lang/en_us.json create mode 100644 src/main/resources/assets/simplehud/textures/compass.png create mode 100644 src/main/resources/assets/simplehud/textures/compass_pointer.png create mode 100644 src/main/resources/assets/simplehud/textures/green_arrow.png create mode 100644 src/main/resources/assets/simplehud/textures/off_green_arrow.png create mode 100644 src/main/resources/assets/simplehud/textures/off_red_arrow.png create mode 100644 src/main/resources/assets/simplehud/textures/red_arrow.png diff --git a/src/main/java/com/lukasabbe/simplehud/config/Config.java b/src/main/java/com/lukasabbe/simplehud/config/Config.java index cf609f1..62f5fe9 100644 --- a/src/main/java/com/lukasabbe/simplehud/config/Config.java +++ b/src/main/java/com/lukasabbe/simplehud/config/Config.java @@ -23,10 +23,10 @@ public class Config { public Map HudActivatedList = getActiveHuds(); @SerialEntry - public HudPosition hudPosition = HudPosition.CENTER; + public HudPosition hudPositionElytra = HudPosition.CENTER; @SerialEntry - public SpeedEnum speedEnum = SpeedEnum.kmh; + public SpeedEnum speedEnumElytra = SpeedEnum.kmh; @SerialEntry public boolean ignoreSafeArea = false; diff --git a/src/main/java/com/lukasabbe/simplehud/config/ModMenu.java b/src/main/java/com/lukasabbe/simplehud/config/ModMenu.java new file mode 100644 index 0000000..97262ed --- /dev/null +++ b/src/main/java/com/lukasabbe/simplehud/config/ModMenu.java @@ -0,0 +1,64 @@ +package com.lukasabbe.simplehud.config; + +import com.terraformersmc.modmenu.api.ConfigScreenFactory; +import com.terraformersmc.modmenu.api.ModMenuApi; +import dev.isxander.yacl3.api.*; +import dev.isxander.yacl3.api.controller.TickBoxControllerBuilder; +import dev.isxander.yacl3.gui.controllers.TickBoxController; +import dev.isxander.yacl3.gui.controllers.cycling.EnumController; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.network.chat.Component; + +public class ModMenu implements ModMenuApi { + + @Override + public ConfigScreenFactory getModConfigScreenFactory() { + return this::createConfig; + } + + private Screen createConfig(Screen parent) { + Config instance = Config.HANDLER.instance(); + return YetAnotherConfigLib + .createBuilder() + .title(Component.translatable("simple_hud.config.title")) + .category(ConfigCategory + .createBuilder() + .name(Component.translatable("simple_hud.config.category.general.name")) + .tooltip(Component.translatable("simple_hud.config.category.general.tooltip")) + .group(toggleOptions()) + .build() + ) + .category(ConfigCategory + .createBuilder() + .name(Component.translatable("simple_hud.config.category.elytra_options.name")) + .option(Option + .createBuilder() + .name(Component.translatable("simple_hud.config.category.elytra_options.option.speed_enum.name")) + .description(OptionDescription.of(Component.translatable("simple_hud.config.category.elytra_options.option.speed_enum.description"))) + .binding(SpeedEnum.kmh, () -> instance.speedEnumElytra, newVal -> instance.speedEnumElytra = newVal) + .customController(opt -> new EnumController<>(opt, SpeedEnum.class)) + .build()) + .build()) + .save(() -> Config.HANDLER.save()) + .build().generateScreen(parent); + } + private OptionGroup toggleOptions(){ + var builder = OptionGroup + .createBuilder() + .name( Component.translatable("simple_hud.config.category.general.group.activated_huds.name")) + .description(OptionDescription.of(Component.translatable("simple_hud.config.category.general.group.activated_huds.description"))); + + Config instance = Config.HANDLER.instance(); + for(var transport : instance.HudActivatedList.entrySet()){ + builder.option(Option + .createBuilder() + .name(Component.translatable("simple_hud.config.category.general.group.activated_huds.option." + transport.getKey().split(":")[1] + ".name")) + .description(OptionDescription.of(Component.translatable("simple_hud.config.category.general.group.activated_huds.option." + transport.getKey().split(":")[1] + ".description"))) + .binding(true, transport::getValue, newVal -> instance.HudActivatedList.put(transport.getKey(), newVal)) + .controller(TickBoxControllerBuilder::create) + .build() + ); + } + return builder.build(); + } +} diff --git a/src/main/java/com/lukasabbe/simplehud/config/SpeedEnum.java b/src/main/java/com/lukasabbe/simplehud/config/SpeedEnum.java index bd5b428..a4ed289 100644 --- a/src/main/java/com/lukasabbe/simplehud/config/SpeedEnum.java +++ b/src/main/java/com/lukasabbe/simplehud/config/SpeedEnum.java @@ -9,6 +9,6 @@ public enum SpeedEnum implements NameableEnum { ms; @Override public Component getDisplayName() { - return null; + return Component.translatable("simple_hud.config.speed_enum." + name().toLowerCase()); } } diff --git a/src/main/java/com/lukasabbe/simplehud/huds/ElytraHud.java b/src/main/java/com/lukasabbe/simplehud/huds/ElytraHud.java index ce3e5ab..83691d4 100644 --- a/src/main/java/com/lukasabbe/simplehud/huds/ElytraHud.java +++ b/src/main/java/com/lukasabbe/simplehud/huds/ElytraHud.java @@ -5,9 +5,21 @@ import com.lukasabbe.simplehud.SimpleHudMod; import com.lukasabbe.simplehud.tools.ElytraTools; import net.minecraft.client.DeltaTracker; import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.renderer.RenderPipelines; import net.minecraft.resources.Identifier; +import net.minecraft.util.ARGB; +import net.minecraft.util.Mth; +import net.minecraft.world.item.Items; public class ElytraHud implements SimpleHud { + + Identifier compass = Identifier.fromNamespaceAndPath(Constants.MOD_ID, "textures/compass.png"); + Identifier compass_pointer = Identifier.fromNamespaceAndPath(Constants.MOD_ID, "textures/compass_pointer.png"); + Identifier green_arrow = Identifier.fromNamespaceAndPath(Constants.MOD_ID, "textures/green_arrow.png"); + Identifier red_arrow = Identifier.fromNamespaceAndPath(Constants.MOD_ID, "textures/red_arrow.png"); + Identifier off_green_arrow = Identifier.fromNamespaceAndPath(Constants.MOD_ID, "textures/off_green_arrow.png"); + Identifier off_red_arrow = Identifier.fromNamespaceAndPath(Constants.MOD_ID, "textures/off_red_arrow.png"); + @Override public void render(GuiGraphics graphics, DeltaTracker tracker) { if(!isHudActivated()) return; @@ -25,26 +37,121 @@ public class ElytraHud implements SimpleHud { float textScale = 0.6f; int whiteColor = 0xFFFFFFFF; + //Draw pitch int pitchTextY = 5; - renderCenteredScaledText(graphics, String.format("%d°", ElytraTools.getPitch()), x + textX, y + pitchTextY, whiteColor, textScale); + int pitch = ElytraTools.getPitch(); + renderCenteredScaledText(graphics, String.format("%d°", pitch), x + textX, y + pitchTextY, whiteColor, textScale); + //Draw speed int speedTextY = 15; renderCenteredScaledText(graphics, getSpeed(), x + textX, y + speedTextY, whiteColor, textScale); + //Draw coordinates int coordinatesTextY = 25; - String coordinatesText = String.format("%.0f:%.0f:%.0f", client.player.getX(), client.player.getY(), client.player.getZ()); - int maxAvailableWidth = 40; + String coordinatesText = String.format("%.0f:%.0f:%.0f", client.player.getX(), client.player.getY(), client.player.getZ()); int textWidth = client.font.width(coordinatesText); - float maxScale = (float) maxAvailableWidth / textWidth; float finalScale = Math.min(textScale, maxScale); - renderCenteredScaledText(graphics, coordinatesText, x + textX, y + coordinatesTextY, whiteColor, finalScale); + + //Draw elytra status + int itemX = 47; + int itemY = 5; + + int statusBarY = 30 + y; + int statusBarX = 50 + x; + int statusSize = 17; + int width = 2; + + float damagePercentage = ElytraTools.getDamagePercentage(); + final int statusBar = statusBarY - (int)(damagePercentage * statusSize); + float damagePercentageLeft = 1 - damagePercentage; + + drawScaledItem(graphics, x + itemX, y + itemY, Items.ELYTRA, 0.5f); + + graphics.fill(statusBarX, statusBarY, statusBarX + width, statusBar, ARGB.color(0xFF, ElytraTools.damageColor())); + if(damagePercentageLeft != 0) { + graphics.fill(statusBarX, statusBar, statusBarX + width,statusBar - (int)(damagePercentageLeft * statusSize), 0xFF3D3D3D); + } + + int textureCornerX = 0; + int textureCornerY = 0; + + //Draw up and down arrows + + int arrowWidth = 6; + int arrowHeight = 8; + + boolean isGoingUp = pitch > 0; + int greenAndRedArrowX = x + 56; + int greenArrowY = y + 10; + int redArrowY = y + 20; + + if(!isGoingUp){ + graphics.blit( + RenderPipelines.GUI_TEXTURED, + green_arrow, + greenAndRedArrowX, greenArrowY, + textureCornerX, textureCornerY, + arrowWidth, arrowHeight, + arrowWidth, arrowHeight + ); + graphics.blit( + RenderPipelines.GUI_TEXTURED, + off_red_arrow, + greenAndRedArrowX, redArrowY, + textureCornerX, textureCornerY, + arrowWidth, arrowHeight, + arrowWidth, arrowHeight + ); + }else { + graphics.blit( + RenderPipelines.GUI_TEXTURED, + off_green_arrow, + greenAndRedArrowX, greenArrowY, + textureCornerX, textureCornerY, + arrowWidth, arrowHeight, + arrowWidth, arrowHeight + ); + graphics.blit( + RenderPipelines.GUI_TEXTURED, + red_arrow, + greenAndRedArrowX, redArrowY, + textureCornerX, textureCornerY, + arrowWidth, arrowHeight, + arrowWidth, arrowHeight + ); + } + + //Compas background + + int compassWidth = 29; + int compassHeight = 29; + int compassX = x + 67; + int compassY = y + 3; + graphics.blit( + RenderPipelines.GUI_TEXTURED, + compass, + compassX, compassY, + textureCornerX, textureCornerY, + compassWidth, compassHeight, + compassWidth, compassHeight + ); + + double radians = ElytraTools.getRadians(); + + double radius = 5; + float centerX = compassX + 14; + float centerY = compassY + 14; + float endX = Math.round(centerX + (radius * -Mth.sin(radians))); + float endY = Math.round(centerY + (radius * Mth.cos(radians))); + + drawLine(graphics, centerX, centerY, endX, endY, (int) radius, compass_pointer); } private String getSpeed(){ - return switch (SimpleHudMod.configInstance.speedEnum){ + return switch (SimpleHudMod.configInstance.speedEnumElytra){ case kmh -> String.format("%.1f km/h", ElytraTools.getSpeedKmh()); case mph -> String.format("%.1f mph", ElytraTools.getSpeedMph()); case ms -> String.format("%.1f m/s", ElytraTools.getSpeedMs()); diff --git a/src/main/java/com/lukasabbe/simplehud/huds/SimpleHud.java b/src/main/java/com/lukasabbe/simplehud/huds/SimpleHud.java index c376611..eb40c78 100644 --- a/src/main/java/com/lukasabbe/simplehud/huds/SimpleHud.java +++ b/src/main/java/com/lukasabbe/simplehud/huds/SimpleHud.java @@ -8,6 +8,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.renderer.RenderPipelines; import net.minecraft.resources.Identifier; +import net.minecraft.util.Mth; +import net.minecraft.world.item.Item; public interface SimpleHud { Minecraft client = Minecraft.getInstance(); @@ -75,15 +77,41 @@ public interface SimpleHud { stack.popMatrix(); } + default void drawScaledItem(GuiGraphics context, int poxX, int posY, Item item, float scaled){ + var stack = context.pose(); + stack.pushMatrix(); + stack.translate(poxX,posY); + stack.scale(scaled,scaled); + stack.translate(-poxX,-posY); + context.renderFakeItem(item.getDefaultInstance(), poxX, posY); + stack.popMatrix(); + } + default int[] getCornerPos(){ int backPlateCenteredX = 50; int backPlateCenteredY = 60; int screenWidth = client.getWindow().getGuiScaledWidth(); int screenHeight = client.getWindow().getGuiScaledHeight(); - int[] pos = calculateHudPosition(screenWidth, screenHeight, SimpleHudMod.configInstance.hudPosition); + int[] pos = calculateHudPosition(screenWidth, screenHeight, SimpleHudMod.configInstance.hudPositionElytra); int x = pos[0] - backPlateCenteredX; int y = pos[1] - backPlateCenteredY; return new int[]{x, y}; } + + default void drawLine(GuiGraphics graphics, float posX, float posY, float endPosX, float endPosY, int points, Identifier texture){ + for (int i = 0; i <= points; i++){ + float progress = (float) i / points; + float x = Mth.lerp(progress, posX, endPosX); + float y = Mth.lerp(progress, posY, endPosY); + graphics.blit( + RenderPipelines.GUI_TEXTURED, + texture, + (int)x, (int)y, + 0, 0, + 1, 1, + 1,5 + ); + } + } } diff --git a/src/main/java/com/lukasabbe/simplehud/tools/ElytraTools.java b/src/main/java/com/lukasabbe/simplehud/tools/ElytraTools.java index 6749585..1c4c190 100644 --- a/src/main/java/com/lukasabbe/simplehud/tools/ElytraTools.java +++ b/src/main/java/com/lukasabbe/simplehud/tools/ElytraTools.java @@ -2,6 +2,8 @@ package com.lukasabbe.simplehud.tools; import net.minecraft.client.Minecraft; import net.minecraft.client.player.LocalPlayer; +import net.minecraft.world.entity.EquipmentSlot; +import net.minecraft.world.item.Items; import net.minecraft.world.phys.Vec3; import org.jspecify.annotations.Nullable; @@ -40,10 +42,31 @@ public class ElytraTools { return (int)player.getXRot(); } - public static int getYaw(){ + public static double getRadians(){ var player = getLocalPlayer(); if(player == null) return 0; - return (int)player.getYRot(); + float yaw = player.getViewYRot(Minecraft.getInstance().getFrameTimeNs()); + + float normalizedYaw = (yaw % 360); + if (normalizedYaw < 0) normalizedYaw += 360; + + return Math.toRadians(normalizedYaw); + } + + public static float getDamagePercentage(){ + var player = getLocalPlayer(); + if(player == null) return 0; + var chestItem = player.getItemBySlot(EquipmentSlot.CHEST); + if(!chestItem.is(Items.ELYTRA)) return 0; + return (1 - ((float) chestItem.getDamageValue() / chestItem.getMaxDamage())); + } + + public static int damageColor(){ + var player = getLocalPlayer(); + if(player == null) return 0; + var chestItem = player.getItemBySlot(EquipmentSlot.CHEST); + if(!chestItem.is(Items.ELYTRA)) return 0; + return chestItem.getBarColor(); } private static @Nullable LocalPlayer getLocalPlayer() { diff --git a/src/main/resources/assets/simplehud/icon.png b/src/main/resources/assets/simplehud/icon.png index 5f20026b74810732b5cb2693ccb57d71e576dfda..ee355c16a2008b4fe975ec5f3ea4adaba2601a4b 100644 GIT binary patch literal 1054 zcmeAS@N?(olHy`uVBq!ia0vp^mq3_<4M^J0oaY3j7>k44ofy`glX=O&z?CgCuIHJvhUcEJ059i55HSCJgoFm zo;LB}RsGtUqamPrY*C ztMu&o$IvZ2kny?xn%kY-ck^E4%ki~8e69KR`|pL%_wL)LXP0L3?;N`N2M>=;U#$Et zS~5BQ)~y?NGXBgJM)(VC@qySrjrWO1{+{1n-~aEo{Qkdn549t)8HE~XU~e}r-o9_n z^UA{Ns#(iwipyVqy%v|9d${^-+2r_rb+)f>MQq#l@b5ugd-40bC!YPV_5AA<#rDtr zP{J1I2KVFl3%cF*sjZC9e))9{O4I;tx%Bb-((T9U%T`NYs{dd5tyr#fb8YwA_r<8O zl#uzgD{Ohr{QoxpE%{%GsU5;*OZMX<7g-NRN9g>SDN$UX|FXF9<@ss%a~gVKF#w77 z@cXmw9=dh+&$r)yAAP>|&f)m?vfXzdCAS|={J3%A?oW5E)DdY1XY9Yr@Oq1i+uZW8>_1iCp;oZlVtdlPPslwFaV*V_>Q@$B3i7^3P(h&VwKJ(}HZ8Hz| QYydgT)78&qol`;+0Fe`sYXATM literal 190079 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 GKm9+Qrs`7w diff --git a/src/main/resources/assets/simplehud/lang/en_us.json b/src/main/resources/assets/simplehud/lang/en_us.json new file mode 100644 index 0000000..d3659c4 --- /dev/null +++ b/src/main/resources/assets/simplehud/lang/en_us.json @@ -0,0 +1,15 @@ +{ + "simple_hud.config.title": "Simple HUD config menu", + "simple_hud.config.category.general.name": "General options", + "simple_hud.config.category.general.tooltip": "All general options for the mod", + "simple_hud.config.category.general.group.activated_huds.name": "Toggle HUD:s", + "simple_hud.config.category.general.group.activated_huds.description": "Toggle menu for all transport HUD:s", + "simple_hud.config.category.general.group.activated_huds.option.elytra_hud.name": "Elytra HUD", + "simple_hud.config.category.general.group.activated_huds.option.elytra_hud.description": "Elytra Hud toggle, if you don't want to see the an HUD when you fly.", + "simple_hud.config.category.elytra_options.name": "Elytra HUD options", + "simple_hud.config.category.elytra_options.option.speed_enum.name": "Speed unit", + "simple_hud.config.category.elytra_options.option.speed_enum.description": "You can change the speed unit to what you are used to", + "simple_hud.config.speed_enum.kmh": "km/h", + "simple_hud.config.speed_enum.mph": "MPH", + "simple_hud.config.speed_enum.ms": "m/s" +} \ No newline at end of file diff --git a/src/main/resources/assets/simplehud/textures/compass.png b/src/main/resources/assets/simplehud/textures/compass.png new file mode 100644 index 0000000000000000000000000000000000000000..2a4bb25c1a8a3ca64db451b927acd58698fc41a4 GIT binary patch literal 339 zcmV-Z0j&OsP)Px$4M{{nR7i=@%*^iU?jKhO%KR^<}Mx(?QU zbvb)NiPMuVj>ODtJTWsjeo+H_@4E_I>~vlhyt)qavWUi;K&`V3rCSX!{O)CBTm+q;$%)Q4`pf_T002ovPDHLkV1m!0jN1SJ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/simplehud/textures/compass_pointer.png b/src/main/resources/assets/simplehud/textures/compass_pointer.png new file mode 100644 index 0000000000000000000000000000000000000000..dc84d6d4a007d0aeefa2540b03f3ade974a64c17 GIT binary patch literal 90 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrF!3HE-TH5A=1d4;)ofy`glX(f`h$3n-jKx9jP7LeL$-D$|QaoK8LpWw8 zCp0wetuOyG|9}0ldWrdhYCAeI&6t6pnYmfpSt*%K`ShRv#{cw_W}Myd{X1VrP#7Cq z%3L0!{X71j{`07f+raPvgN9IiT$3n-jKx9jP7LeL$-D$|ay(reLpWw8 zCp0w4PT%%7zAEivy~KP$wTd548QDNU*HN}DW3q+Yv8Cx^fA@d;$94FrxwxbR5R|xn zk=(*kD)Hbz{?6a^`=7omSUf|bfI*~_Ki@9NtES@f#D~w1&z~V=Z~rgl$45>@Musmx WG}TXh_`eTmFN3G6pUXO@geCwwdqEWd literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/simplehud/textures/off_red_arrow.png b/src/main/resources/assets/simplehud/textures/off_red_arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..2ac7d112668ff72655b217dd814a0856c84ce0ce GIT binary patch literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^Y(UJx0U~c5>$3n-jKx9jP7LeL$-D$|51_^lk9^j2{EC8-{f!pF~7ghaL?bL zlN%>CHa0H2eCf;o!`0s$3n-jKx9jP7LeL$-D$|qCH(4LpWw8 zCp0w0Zx#JtUupS2-GP1oo;m;j3q3rhq0rykrU@*M*Wc>;&y((NY%s^_-~k}` z@Z)-Z8~gtSYX6Kb{HUMa|Mq{Z-M0VLl@Wom8>Y95x(YDlw5YB%^?rUFXbpp>tDnm{ Hr-UW|H|alh literal 0 HcmV?d00001 diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 95f6d9b..6538cc0 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -12,6 +12,9 @@ "entrypoints": { "client": [ "com.lukasabbe.simplehud.SimpleHudMod" + ], + "modmenu": [ + "com.lukasabbe.simplehud.config.ModMenu" ] }, "mixins": [