diff --git a/gradle.properties b/gradle.properties index bac900b..8b0b895 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,7 +11,7 @@ yarn_mappings=1.21.4+build.7 loader_version=0.16.10 fabric_version=0.114.0+1.21.4 -mod_version = 0.0.7-alpha1 +mod_version = 0.0.7-beta1 maven_group = org.saturnclient archives_base_name = saturnclient 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/elements/AnimationStagger.java b/src/main/java/org/saturnclient/ui2/elements/AnimationStagger.java index 3865481..c908b82 100644 --- a/src/main/java/org/saturnclient/ui2/elements/AnimationStagger.java +++ b/src/main/java/org/saturnclient/ui2/elements/AnimationStagger.java @@ -27,8 +27,12 @@ public class AnimationStagger extends Element { } ElementRenderer.draw(children, element); + + this.height = Math.max(this.height, element.y + element.height); + this.width = Math.max(this.width, element.x + element.width); } + @Override public void render(RenderScope renderScope, ElementContext ctx) { ElementRenderer.render(children, ctx.elapsed, renderScope, diff --git a/src/main/java/org/saturnclient/ui2/screens/ModMenu.java b/src/main/java/org/saturnclient/ui2/screens/ModMenu.java index 83041b1..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(80); + 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; diff --git a/src/main/java/org/saturnclient/ui2/screens/ShiftMenu.java b/src/main/java/org/saturnclient/ui2/screens/ShiftMenu.java index 350a6a1..6277afe 100644 --- a/src/main/java/org/saturnclient/ui2/screens/ShiftMenu.java +++ b/src/main/java/org/saturnclient/ui2/screens/ShiftMenu.java @@ -37,7 +37,7 @@ public class ShiftMenu extends SaturnScreen { int spacing = 4; // Create stagger - AnimationStagger stagger = new AnimationStagger(120); + AnimationStagger stagger = new AnimationStagger(50); stagger.draw(new TextureButton(Textures.HUD_ICON, () -> { client.setScreen(new HudEditor()); diff --git a/src/main/resources/assets/saturnclient/textures/gui/mod/clock.png b/src/main/resources/assets/saturnclient/textures/gui/mod/clock.png deleted file mode 100644 index b8d46ec..0000000 Binary files a/src/main/resources/assets/saturnclient/textures/gui/mod/clock.png and /dev/null differ diff --git a/src/main/resources/assets/saturnclient/textures/gui/mod/clock.svg b/src/main/resources/assets/saturnclient/textures/gui/mod/clock.svg new file mode 100644 index 0000000..c928bd6 --- /dev/null +++ b/src/main/resources/assets/saturnclient/textures/gui/mod/clock.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/main/resources/assets/saturnclient/textures/gui/mod/nametags.png b/src/main/resources/assets/saturnclient/textures/gui/mod/nametags.png deleted file mode 100644 index 90a1e97..0000000 Binary files a/src/main/resources/assets/saturnclient/textures/gui/mod/nametags.png and /dev/null differ diff --git a/src/main/resources/assets/saturnclient/textures/gui/mod/nametags.svg b/src/main/resources/assets/saturnclient/textures/gui/mod/nametags.svg new file mode 100644 index 0000000..876a0f0 --- /dev/null +++ b/src/main/resources/assets/saturnclient/textures/gui/mod/nametags.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/main/resources/assets/saturnclient/textures/gui/mod/ping.png b/src/main/resources/assets/saturnclient/textures/gui/mod/ping.png deleted file mode 100644 index 01a53a6..0000000 Binary files a/src/main/resources/assets/saturnclient/textures/gui/mod/ping.png and /dev/null differ diff --git a/src/main/resources/assets/saturnclient/textures/gui/mod/ping.svg b/src/main/resources/assets/saturnclient/textures/gui/mod/ping.svg new file mode 100644 index 0000000..6eaafc9 --- /dev/null +++ b/src/main/resources/assets/saturnclient/textures/gui/mod/ping.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/main/resources/assets/saturnclient/textures/gui/mod/tps.png b/src/main/resources/assets/saturnclient/textures/gui/mod/tps.png deleted file mode 100644 index 634c7f4..0000000 Binary files a/src/main/resources/assets/saturnclient/textures/gui/mod/tps.png and /dev/null differ diff --git a/src/main/resources/assets/saturnclient/textures/gui/mod/tps.svg b/src/main/resources/assets/saturnclient/textures/gui/mod/tps.svg new file mode 100644 index 0000000..f2ad6c9 --- /dev/null +++ b/src/main/resources/assets/saturnclient/textures/gui/mod/tps.svg @@ -0,0 +1,7 @@ + + + + + + performance_line + \ No newline at end of file