From 5f19abebbfd88874d26bfd6ae70a7782b911d36b Mon Sep 17 00:00:00 2001 From: RudideC Date: Fri, 13 Feb 2026 10:06:13 +0100 Subject: [PATCH] added health display ts tuff --- .../org/saturnclient/modules/ModManager.java | 3 +- .../modules/mods/HealthDisplay.java | 85 ++++++++++++++++++ .../saturnclient/textures/gui/mod/health.png | Bin 0 -> 962 bytes 3 files changed, 87 insertions(+), 1 deletion(-) create mode 100644 src/main/java/org/saturnclient/modules/mods/HealthDisplay.java create mode 100644 src/main/resources/assets/saturnclient/textures/gui/mod/health.png diff --git a/src/main/java/org/saturnclient/modules/ModManager.java b/src/main/java/org/saturnclient/modules/ModManager.java index 7713afc..13bd833 100644 --- a/src/main/java/org/saturnclient/modules/ModManager.java +++ b/src/main/java/org/saturnclient/modules/ModManager.java @@ -21,7 +21,8 @@ public class ModManager { new NoFog(), new DayCounter(), new Speedometer(), - new Zoom() + new Zoom(), + new HealthDisplay() }; public static void init() { diff --git a/src/main/java/org/saturnclient/modules/mods/HealthDisplay.java b/src/main/java/org/saturnclient/modules/mods/HealthDisplay.java new file mode 100644 index 0000000..169e6c7 --- /dev/null +++ b/src/main/java/org/saturnclient/modules/mods/HealthDisplay.java @@ -0,0 +1,85 @@ +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.saturnclient.config.Property; +import org.saturnclient.ui2.RenderScope; +import org.saturnclient.ui2.resources.Fonts; + +import net.minecraft.util.math.Vec3d; + +public class HealthDisplay extends Module implements HudMod { + private static Property enabled = Property.bool(false); + private static Property displayMode = Property.select(0, "Health", "Hearts"); + private static Property decimals = Property.select(0, "0", "1", "2"); + private static ModDimensions dimensions = new ModDimensions(40, 18); + double speed = 0.; + Vec3d velocity; + double y = 0.; + + public HealthDisplay() { + super(new ModuleDetails("Health display", "health") + .description("Displays your current health") + .version("v0.1.0") + .tags("Utility"), + enabled.named("Enabled"), + displayMode.named("Display mode"), + decimals.named("Decimals"), + dimensions.prop() + ); + } + + @Override + public void renderDummy(RenderScope scope) { + renderSpeed(10, scope); + } + + @Override + public void renderHud(RenderScope scope) { + float health = SaturnClient.client.player.getHealth(); + switch (displayMode.value) { + case 1: + health = health / 2; + } + renderSpeed(health, scope); + } + + public void renderSpeed(float health, RenderScope scope) { + String text = ""; + + switch (decimals.value) { + case 0: + text = String.format("%.0f ", health); + break; + case 1: + text = String.format("%.1f ", health); + break; + case 2: + text = String.format("%.2f ", health); + break; + } + + scope.drawText(text, + 0, 0, dimensions.font.value, dimensions.fgColor.value); + dimensions.width = Fonts.getWidth(text, dimensions.font.value); + dimensions.height = 18 * text.split("\n").length; + } + + @Override + public boolean isEnabled() { + return enabled.value; + } + + @Override + public ModDimensions getDimensions() { + return dimensions; + } + + @Override + public void onEnabled(boolean e) { + enabled.value = e; + } +} diff --git a/src/main/resources/assets/saturnclient/textures/gui/mod/health.png b/src/main/resources/assets/saturnclient/textures/gui/mod/health.png new file mode 100644 index 0000000000000000000000000000000000000000..dcca15ca6145bcc8d171e707e4aabb03a82be5af GIT binary patch literal 962 zcmV;z13mnSP)OT9K@8^n097M5h92Lu`sqy#H`K1Cx^e{F6wnvb=T|MPTrr?;=Ob3fBsW< zKIL2qC6rJ?2_XZh0M-DPfcwBF;2Tf}Tm;qugER0A0oJQ+owz=U+x}Y(49YWsQNU%= z;Wuy&sA_<3gnZ054K4xIO-Z0Fu)_=Z2G|cwRqu2J+5vrlDZp;vt$cq1n}9NpuMF5M zTg0~um@E$C>L~7MzybM0FK9c^CTkMifGZ;T4AcPSDcW@gHfop{jwk_pj_E(MZ7|;y zeC101i`P3{v-Cui#4{TTDf9O^s(`2BIOZks1Q^~3zG~pPmrQccXgEbl^vW94Uyv+f5DAT;KqvOY4O=<3kw-xWK{x zY49M-by zwBC+09+h#i3mm{QX+0EYTrT5b7dZI;(w7#xu^HZlJmG=%zz1oqDCBfg4zpaK0Om;J z^@f~Q$jK6F0E-(NyrL8t`_{b zxS<9IT_6AsOVhQ~*8*UeS3p=)bd||^mPpH2U})CH3)J{KFtKPVlXXmz2E+Wul0=0F zs{oG8U1f6o@v0vr7aUStQ;&PeG+WOA6M&D3eWJEyntL4WsvA{PGMu&2YL5I?radq2Un;8>?{uMp^?L<;1dPdn za~$y4JG4&DM{RQ80l-}a{;A=Rc^qr=wQnvz#C6|J;l)wiZ~d73#G&p%=Q40rUh;dvD#2IXk`I)^j~vO93!X$C?PXQ?GO_5kMtyPfw+5 k$>873E|{BU39gy&2VctvN`ERT%K!iX07*qoM6N<$f(a9{jsO4v literal 0 HcmV?d00001