From ef2ffcc5e7a1f87671d30335285c7d01f2c9cbf3 Mon Sep 17 00:00:00 2001 From: Leo dev Date: Fri, 4 Apr 2025 15:34:20 +0200 Subject: [PATCH] button hover effect --- .../saturnclient/SaturnClient.java | 2 +- .../java/org/saturnclient/ui/SaturnUi.java | 2 + .../org/saturnclient/ui/SaturnWidget.java | 35 +++++++++++------- .../java/org/saturnclient/ui/Textures.java | 4 +- .../saturnclient/ui/widgets/SaturnButton.java | 20 +++++++++- .../saturnclient/textures/gui/cloak/.png | Bin 19024 -> 0 bytes .../assets/saturnclient/textures/gui/hat/.png | Bin 14652 -> 0 bytes 7 files changed, 44 insertions(+), 19 deletions(-) delete mode 100644 src/main/resources/assets/saturnclient/textures/gui/cloak/.png delete mode 100644 src/main/resources/assets/saturnclient/textures/gui/hat/.png diff --git a/src/main/java/org/saturnclient/saturnclient/SaturnClient.java b/src/main/java/org/saturnclient/saturnclient/SaturnClient.java index 41c9f59..18b3bd6 100644 --- a/src/main/java/org/saturnclient/saturnclient/SaturnClient.java +++ b/src/main/java/org/saturnclient/saturnclient/SaturnClient.java @@ -65,5 +65,5 @@ public class SaturnClient implements ModInitializer { } else { LOGGER.error("Failed to authenticate with the server"); } - } + } } diff --git a/src/main/java/org/saturnclient/ui/SaturnUi.java b/src/main/java/org/saturnclient/ui/SaturnUi.java index 798b575..42e587e 100644 --- a/src/main/java/org/saturnclient/ui/SaturnUi.java +++ b/src/main/java/org/saturnclient/ui/SaturnUi.java @@ -245,6 +245,8 @@ public class SaturnUi extends Screen { } } } + + widget.tick(); } tick++; } diff --git a/src/main/java/org/saturnclient/ui/SaturnWidget.java b/src/main/java/org/saturnclient/ui/SaturnWidget.java index f715e66..1d248f9 100644 --- a/src/main/java/org/saturnclient/ui/SaturnWidget.java +++ b/src/main/java/org/saturnclient/ui/SaturnWidget.java @@ -14,27 +14,34 @@ public class SaturnWidget { public boolean visible = true; public boolean focused = false; - public void init() {} + public void init() { + } public void render( - DrawContext context, - boolean hovering, - int mouseX, - int mouseY - ) {} + DrawContext context, + boolean hovering, + int mouseX, + int mouseY) { + } - public void click(int mouseX, int mouseY) {} + public void click(int mouseX, int mouseY) { + } - public void keyPressed(int keyCode, int scanCode, int modifiers) {} + public void keyPressed(int keyCode, int scanCode, int modifiers) { + } - public void charTyped(char typedChar) {} + public void charTyped(char typedChar) { + } + + public void tick() { + } public void mouseScrolled( - int mouseX, - int mouseY, - double horizontalAmount, - double verticalAmount - ) {} + int mouseX, + int mouseY, + double horizontalAmount, + double verticalAmount) { + } public SaturnWidget setX(int x) { this.x = x; diff --git a/src/main/java/org/saturnclient/ui/Textures.java b/src/main/java/org/saturnclient/ui/Textures.java index e9c945c..a70c0f0 100644 --- a/src/main/java/org/saturnclient/ui/Textures.java +++ b/src/main/java/org/saturnclient/ui/Textures.java @@ -28,11 +28,11 @@ public class Textures { public static final Identifier MOD_BG = Identifier.of("saturnclient", "textures/gui/components/mod_bg.png"); public static Identifier getCloakPreview(String cloak) { - return Identifier.of("saturnclient", "textures/gui/cloak/" + cloak + ".png"); + return Identifier.of("saturnclient", "textures/gui/cloak/" + (cloak.isEmpty() ? "none" : cloak) + ".png"); } public static Identifier getHatPreview(String hat) { - return Identifier.of("saturnclient", "textures/gui/hat/" + hat + ".png"); + return Identifier.of("saturnclient", "textures/gui/hat/" + (hat.isEmpty() ? "none" : hat) + ".png"); } public static Identifier getModIcon(String modId) { diff --git a/src/main/java/org/saturnclient/ui/widgets/SaturnButton.java b/src/main/java/org/saturnclient/ui/widgets/SaturnButton.java index cbb2002..d6f4aad 100644 --- a/src/main/java/org/saturnclient/ui/widgets/SaturnButton.java +++ b/src/main/java/org/saturnclient/ui/widgets/SaturnButton.java @@ -5,6 +5,7 @@ import java.util.function.Consumer; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawContext; import net.minecraft.util.math.MathHelper; + import org.saturnclient.saturnclient.SaturnClient; import org.saturnclient.ui.SaturnUi; import org.saturnclient.ui.SaturnWidget; @@ -17,6 +18,8 @@ public class SaturnButton extends SaturnWidget { public Consumer onPress; public boolean background = true; + private float hoverAlpha; + public SaturnButton(String text, Consumer onPress) { this.text = text; this.onPress = onPress; @@ -36,7 +39,7 @@ public class SaturnButton extends SaturnWidget { int mouseY) { MinecraftClient minecraftClient = MinecraftClient.getInstance(); - int hoverColor = ((int) (alpha * 255) << 24) | + int hoverColor = ((int) (hoverAlpha * 255) << 24) | (SaturnClient.COLOR.value & 0x00FFFFFF); if (background) { @@ -52,6 +55,9 @@ public class SaturnButton extends SaturnWidget { SaturnClient.getWhite(this.alpha)); if (hovering) { + if (hoverAlpha == 0.0f) + hoverAlpha = 0.1f; + SaturnUi.drawHighResGuiTexture( context, Textures.BUTTON_BORDER, @@ -59,7 +65,9 @@ public class SaturnButton extends SaturnWidget { 0, this.width, this.height, - hoverColor); + ((int) (hoverAlpha * 255) << 24) | (SaturnClient.COLOR.value & 0x00FFFFFF)); + } else { + hoverAlpha = 0.0f; } } @@ -86,4 +94,12 @@ public class SaturnButton extends SaturnWidget { public void click(int mouseX, int mouseY) { this.onPress.accept(this); } + + @Override + public void tick() { + if (hoverAlpha > 0.0f && hoverAlpha < 0.9f) + hoverAlpha += 0.06f; + else if (hoverAlpha > 0.9f && hoverAlpha < 1.0f) + hoverAlpha = 1.0f; + } } diff --git a/src/main/resources/assets/saturnclient/textures/gui/cloak/.png b/src/main/resources/assets/saturnclient/textures/gui/cloak/.png deleted file mode 100644 index c06538f45f44ad25c587b6e4cf5d39e9a739ccbb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19024 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 KMNUMnLSTZQS`GIA diff --git a/src/main/resources/assets/saturnclient/textures/gui/hat/.png b/src/main/resources/assets/saturnclient/textures/gui/hat/.png deleted file mode 100644 index 16c2bbe20ef544fe29f8029232f3e199edc62238..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14652 zcmdUW_dlEO7k88rDkLberKq-MT6=F&vud?!MNw+2y$OOCwOdqM6hXn8}004jxx|${c0EODW3rJ1= zW|e^(PJW~CHPKP0_%$FBLHtTSYcs-; zEuR1ib>kgcSA0CyxH#rYHPF(=*zFeZ&dFbU3fps$!s9R|W8ytnyO2P!J_mvo{f;&< z@qHwV8WlbGaXJi@CjaVH+j?O=!;w?2&&o)%bD_firPAo-uJ`AmcIOMs;HxZK~A`=h*heIvHoHHkQroHh~(ulW6#U|ZjgW$cH$u<_n1G&e9+ zDhoFCi(lg)L}9Ct5jyJk)%smM30+uWQ-?79OG`hjYbkLibrBrl5UxeiA>?7H&5B&B z)}#m|tkU0`fKoPI_G54(MyKNT-WIar(cD++}r-crW1m#p|)Kv&qu_{dzlf*bXplv{^ zmx@?2VtPk#N0ksL6X~A3Y7%3Vnvx+3tKjFwwoYR|) znF5Gy+lk1W23{7WMg*gjAhyy^);#f2+|Z8fI550hO%f%*NHzFOR)k2c8%8U>ulYRm zEJE(^UK+-macABi8OdG#i)I4I8;XIX-#Q*VlO>4QUI}m_t32*kJf>6X=25?e2k-(n z`vH0n{(Fvb1O`m#exORC;9-_eq3{X z;VvN9Olk-OOC`Si519SctIbtiSB0AR(ra%q2YZ2=h{{ax=Rxu9*{b`$vD4ECw0^6j z`=t{!ON%Y#U`Y>d?etUj|4%w{*dx$B^2oT? zgK6BXj=2%kAo9toUVi+ox|$vy$T*jmRTrC*?5+-@Zo1oTIrWFy>q$)uimPHO*6wfg z3Tltxb*T%m+E+t2HO);M%}c3oF4{vZgI1Fk$6Ij-!Mho$`hW?{bO~cS z00k_KWqHnv_EdvKek6jY^^vY1Fg7zr4g#`g;xE?GO^5PjzqzO02IXU_>8BC~^}~Nn z(Z+^Ax9D~qP)*=??;M`{HPG33b!B9v>=OQWu2O7TA#@H*co}+ns5l9D!zDu9C>gyg zoI=q}IeFJVFAYP>%CGp)�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