animation fine-tuning, easing change

can change between ease-in-out and ease-out (default)
This commit is contained in:
RudideC
2026-02-24 21:34:56 +01:00
parent 48a41af3b0
commit fd492b91a0
2 changed files with 17 additions and 2 deletions
@@ -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<Boolean> bendyCloaks = Property.bool(true);
public static Property<Integer> openEmoteWheel = Property.keybinding(GLFW.GLFW_KEY_B);
public static Property<Boolean> stagger = Property.bool(true);
public static Property<Integer> animationCurve = Property.select(1, "Ease In Out", "Ease Out");
public static Identifier getLogo() {
return realisticLogo.value ? Textures.REALISTIC_LOGO : Textures.LOGO;
}
public static Function<Double, Double> 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);
@@ -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;