From fd492b91a0ea816db31397531e94c765be5d4feb Mon Sep 17 00:00:00 2001 From: RudideC Date: Tue, 24 Feb 2026 21:34:56 +0100 Subject: [PATCH] animation fine-tuning, easing change can change between ease-in-out and ease-out (default) --- .../saturnclient/config/SaturnClientConfig.java | 12 ++++++++++++ .../java/org/saturnclient/ui2/screens/ModMenu.java | 7 +++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/saturnclient/saturnclient/config/SaturnClientConfig.java b/src/main/java/org/saturnclient/saturnclient/config/SaturnClientConfig.java index 0b9a628..31afbc8 100644 --- a/src/main/java/org/saturnclient/saturnclient/config/SaturnClientConfig.java +++ b/src/main/java/org/saturnclient/saturnclient/config/SaturnClientConfig.java @@ -1,6 +1,9 @@ package org.saturnclient.saturnclient.config; +import java.util.function.Function; + import org.lwjgl.glfw.GLFW; +import org.saturnclient.ui2.anim.Curve; import org.saturnclient.ui2.resources.Textures; import net.minecraft.util.Identifier; @@ -13,11 +16,19 @@ public class SaturnClientConfig { public static Property bendyCloaks = Property.bool(true); public static Property openEmoteWheel = Property.keybinding(GLFW.GLFW_KEY_B); public static Property stagger = Property.bool(true); + public static Property animationCurve = Property.select(1, "Ease In Out", "Ease Out"); public static Identifier getLogo() { return realisticLogo.value ? Textures.REALISTIC_LOGO : Textures.LOGO; } + public static Function getAnimationCurve() { + switch (animationCurve.value) { + case 1: return Curve::easeOutCubic; + default: return Curve::easeInOutCubic; + } + } + public static void init() { config = new ConfigManager("Saturn Client"); config.property("Realistic logo", realisticLogo); @@ -25,6 +36,7 @@ public class SaturnClientConfig { config.property("Open Emote Wheel", openEmoteWheel); config.property("Bendy Cloaks", bendyCloaks); config.property("Stagger Animations", stagger); + config.property("Animation Curve", animationCurve); // Initialize a sub namespace for theme Theme.init(config); diff --git a/src/main/java/org/saturnclient/ui2/screens/ModMenu.java b/src/main/java/org/saturnclient/ui2/screens/ModMenu.java index 5761620..2d3af9f 100644 --- a/src/main/java/org/saturnclient/ui2/screens/ModMenu.java +++ b/src/main/java/org/saturnclient/ui2/screens/ModMenu.java @@ -2,6 +2,7 @@ package org.saturnclient.ui2.screens; import org.saturnclient.modules.ModManager; import org.saturnclient.modules.Module; +import org.saturnclient.saturnclient.config.SaturnClientConfig; import org.saturnclient.ui2.SaturnScreen; import org.saturnclient.ui2.anim.SlideFade; import org.saturnclient.ui2.components.SaturnModule; @@ -26,11 +27,13 @@ public class ModMenu extends SaturnScreen { int row = 0; int col = 0; - AnimationStagger moduleStagger = new AnimationStagger(10); + AnimationStagger moduleStagger = new AnimationStagger(20); for (Module mod : ModManager.ALL_MODS) { moduleStagger.draw( - new SaturnModule(mod).position((160 + g) * col, (50 + g) * row).animation(new SlideFade(600, -12))); + new SaturnModule(mod) + .position((160 + g) * col, (50 + g) * row) + .animation(new SlideFade(600, -12), SaturnClientConfig.getAnimationCurve())); if (col == 2) { col = 0;