From eb065b20d75acc79c81ef5c2d567a760b7df2a1d Mon Sep 17 00:00:00 2001 From: Klesti Selimaj Date: Wed, 25 Feb 2026 00:18:16 +0100 Subject: [PATCH] Animation config --- .../saturnclient/modules/ModDimensions.java | 4 +- .../java/org/saturnclient/modules/Module.java | 4 +- .../modules/mods/ArmorDisplay.java | 2 +- .../saturnclient/modules/mods/AutoSprint.java | 2 +- .../org/saturnclient/modules/mods/Clock.java | 2 +- .../modules/mods/Coordinates.java | 2 +- .../saturnclient/modules/mods/Crosshair.java | 2 +- .../saturnclient/modules/mods/DayCounter.java | 2 +- .../org/saturnclient/modules/mods/Fps.java | 2 +- .../saturnclient/modules/mods/Freelook.java | 2 +- .../saturnclient/modules/mods/Fullbright.java | 2 +- .../modules/mods/HealthDisplay.java | 2 +- .../saturnclient/modules/mods/Keystrokes.java | 2 +- .../saturnclient/modules/mods/Nametags.java | 2 +- .../org/saturnclient/modules/mods/NoFog.java | 2 +- .../org/saturnclient/modules/mods/Ping.java | 2 +- .../modules/mods/Speedometer.java | 2 +- .../modules/mods/StatusEffects.java | 2 +- .../org/saturnclient/modules/mods/Tps.java | 2 +- .../org/saturnclient/modules/mods/Zoom.java | 2 +- .../saturnclient/SaturnClient.java | 6 +-- .../saturnclient/client/player/Roles.java | 4 +- .../saturnclient/config/AnimationConfig.java | 50 +++++++++++++++++++ .../{SaturnClientConfig.java => Config.java} | 19 +++---- .../saturnclient/config/Theme.java | 7 ++- .../config/{ => manager}/ConfigManager.java | 2 +- .../config/{ => manager}/Property.java | 2 +- .../cosmetics/CloakFeatureRenderer.java | 4 +- .../saturnclient/event/KeyInputHandler.java | 4 +- .../saturnclient/menus/HudEditor.java | 2 +- .../saturnclient/mixin/SetScreenMixin.java | 4 +- .../saturnclient/ui2/components/Sidebar.java | 4 +- .../ui2/components/inputs/FloatInput.java | 4 +- .../ui2/components/inputs/HexInput.java | 2 +- .../ui2/components/inputs/IntInput.java | 4 +- .../components/inputs/KeybindingSelector.java | 2 +- .../ui2/components/inputs/Select.java | 2 +- .../ui2/components/inputs/Toggle.java | 2 +- .../ui2/elements/AnimationStagger.java | 4 +- .../ui2/elements/Notification.java | 2 +- .../org/saturnclient/ui2/elements/Scroll.java | 2 +- .../ui2/screens/ConfigEditor.java | 4 +- .../saturnclient/ui2/screens/EmoteWheel.java | 4 +- .../org/saturnclient/ui2/screens/ModMenu.java | 6 +-- .../saturnclient/ui2/screens/ShiftMenu.java | 18 ++++--- .../saturnclient/ui2/screens/TitleMenu.java | 29 +++++++---- 46 files changed, 146 insertions(+), 91 deletions(-) create mode 100644 src/main/java/org/saturnclient/saturnclient/config/AnimationConfig.java rename src/main/java/org/saturnclient/saturnclient/config/{SaturnClientConfig.java => Config.java} (70%) rename src/main/java/org/saturnclient/saturnclient/config/{ => manager}/ConfigManager.java (98%) rename src/main/java/org/saturnclient/saturnclient/config/{ => manager}/Property.java (99%) diff --git a/src/main/java/org/saturnclient/modules/ModDimensions.java b/src/main/java/org/saturnclient/modules/ModDimensions.java index c09b096..77f6e6f 100644 --- a/src/main/java/org/saturnclient/modules/ModDimensions.java +++ b/src/main/java/org/saturnclient/modules/ModDimensions.java @@ -2,8 +2,8 @@ package org.saturnclient.modules; import java.util.Map; -import org.saturnclient.saturnclient.config.Property.NamedProperty; -import org.saturnclient.saturnclient.config.Property; +import org.saturnclient.saturnclient.config.manager.Property; +import org.saturnclient.saturnclient.config.manager.Property.NamedProperty; public class ModDimensions { public Property x = Property.integer(0); diff --git a/src/main/java/org/saturnclient/modules/Module.java b/src/main/java/org/saturnclient/modules/Module.java index bedc306..6c719d6 100644 --- a/src/main/java/org/saturnclient/modules/Module.java +++ b/src/main/java/org/saturnclient/modules/Module.java @@ -1,9 +1,9 @@ package org.saturnclient.modules; -import org.saturnclient.saturnclient.config.ConfigManager; import org.saturnclient.ui2.resources.Textures; +import org.saturnclient.saturnclient.config.manager.ConfigManager; +import org.saturnclient.saturnclient.config.manager.Property.NamedProperty; import org.saturnclient.ui2.RenderScope; -import org.saturnclient.saturnclient.config.Property.NamedProperty; import net.minecraft.util.Identifier; diff --git a/src/main/java/org/saturnclient/modules/mods/ArmorDisplay.java b/src/main/java/org/saturnclient/modules/mods/ArmorDisplay.java index 248072b..5778b71 100644 --- a/src/main/java/org/saturnclient/modules/mods/ArmorDisplay.java +++ b/src/main/java/org/saturnclient/modules/mods/ArmorDisplay.java @@ -5,7 +5,7 @@ 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.saturnclient.config.manager.Property; import org.saturnclient.ui2.RenderScope; import net.minecraft.entity.EquipmentSlot; diff --git a/src/main/java/org/saturnclient/modules/mods/AutoSprint.java b/src/main/java/org/saturnclient/modules/mods/AutoSprint.java index 7352e63..7a413b4 100644 --- a/src/main/java/org/saturnclient/modules/mods/AutoSprint.java +++ b/src/main/java/org/saturnclient/modules/mods/AutoSprint.java @@ -5,7 +5,7 @@ import java.util.Objects; import org.saturnclient.modules.Module; import org.saturnclient.modules.ModuleDetails; import org.saturnclient.saturnclient.SaturnClient; -import org.saturnclient.saturnclient.config.Property; +import org.saturnclient.saturnclient.config.manager.Property; public class AutoSprint extends Module { private static Property enabled = Property.bool(false); diff --git a/src/main/java/org/saturnclient/modules/mods/Clock.java b/src/main/java/org/saturnclient/modules/mods/Clock.java index 10170fa..2492162 100644 --- a/src/main/java/org/saturnclient/modules/mods/Clock.java +++ b/src/main/java/org/saturnclient/modules/mods/Clock.java @@ -7,7 +7,7 @@ import org.saturnclient.modules.HudMod; import org.saturnclient.modules.ModDimensions; import org.saturnclient.modules.Module; import org.saturnclient.modules.ModuleDetails; -import org.saturnclient.saturnclient.config.Property; +import org.saturnclient.saturnclient.config.manager.Property; import org.saturnclient.ui2.RenderScope; import org.saturnclient.ui2.resources.Fonts; diff --git a/src/main/java/org/saturnclient/modules/mods/Coordinates.java b/src/main/java/org/saturnclient/modules/mods/Coordinates.java index 1f9c5dc..7ad5c0b 100644 --- a/src/main/java/org/saturnclient/modules/mods/Coordinates.java +++ b/src/main/java/org/saturnclient/modules/mods/Coordinates.java @@ -5,7 +5,7 @@ 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.saturnclient.config.manager.Property; import org.saturnclient.ui2.RenderScope; import org.saturnclient.ui2.resources.Fonts; diff --git a/src/main/java/org/saturnclient/modules/mods/Crosshair.java b/src/main/java/org/saturnclient/modules/mods/Crosshair.java index 1681c7e..5a4ed46 100644 --- a/src/main/java/org/saturnclient/modules/mods/Crosshair.java +++ b/src/main/java/org/saturnclient/modules/mods/Crosshair.java @@ -3,7 +3,7 @@ package org.saturnclient.modules.mods; import org.saturnclient.modules.Module; import org.saturnclient.modules.ModuleDetails; import org.saturnclient.saturnclient.SaturnClient; -import org.saturnclient.saturnclient.config.Property; +import org.saturnclient.saturnclient.config.manager.Property; import org.saturnclient.ui2.RenderScope; import org.saturnclient.ui2.resources.Textures; diff --git a/src/main/java/org/saturnclient/modules/mods/DayCounter.java b/src/main/java/org/saturnclient/modules/mods/DayCounter.java index 318e928..bbb0b25 100644 --- a/src/main/java/org/saturnclient/modules/mods/DayCounter.java +++ b/src/main/java/org/saturnclient/modules/mods/DayCounter.java @@ -5,7 +5,7 @@ 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.saturnclient.config.manager.Property; import org.saturnclient.ui2.RenderScope; import org.saturnclient.ui2.resources.Fonts; diff --git a/src/main/java/org/saturnclient/modules/mods/Fps.java b/src/main/java/org/saturnclient/modules/mods/Fps.java index afaea6c..f788e71 100644 --- a/src/main/java/org/saturnclient/modules/mods/Fps.java +++ b/src/main/java/org/saturnclient/modules/mods/Fps.java @@ -5,7 +5,7 @@ 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.saturnclient.config.manager.Property; import org.saturnclient.ui2.RenderScope; import org.saturnclient.ui2.resources.Fonts; diff --git a/src/main/java/org/saturnclient/modules/mods/Freelook.java b/src/main/java/org/saturnclient/modules/mods/Freelook.java index 4ad51e0..e894211 100644 --- a/src/main/java/org/saturnclient/modules/mods/Freelook.java +++ b/src/main/java/org/saturnclient/modules/mods/Freelook.java @@ -4,7 +4,7 @@ import org.lwjgl.glfw.GLFW; import org.saturnclient.modules.Module; import org.saturnclient.modules.ModuleDetails; import org.saturnclient.saturnclient.SaturnClient; -import org.saturnclient.saturnclient.config.Property; +import org.saturnclient.saturnclient.config.manager.Property; import net.minecraft.client.option.Perspective; diff --git a/src/main/java/org/saturnclient/modules/mods/Fullbright.java b/src/main/java/org/saturnclient/modules/mods/Fullbright.java index 682e1e2..7c4a3d3 100644 --- a/src/main/java/org/saturnclient/modules/mods/Fullbright.java +++ b/src/main/java/org/saturnclient/modules/mods/Fullbright.java @@ -2,7 +2,7 @@ package org.saturnclient.modules.mods; import org.saturnclient.modules.Module; import org.saturnclient.modules.ModuleDetails; -import org.saturnclient.saturnclient.config.Property; +import org.saturnclient.saturnclient.config.manager.Property; public class Fullbright extends Module { private static Property enabled = Property.bool(false); diff --git a/src/main/java/org/saturnclient/modules/mods/HealthDisplay.java b/src/main/java/org/saturnclient/modules/mods/HealthDisplay.java index a3cd80f..e831ec2 100644 --- a/src/main/java/org/saturnclient/modules/mods/HealthDisplay.java +++ b/src/main/java/org/saturnclient/modules/mods/HealthDisplay.java @@ -5,7 +5,7 @@ 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.saturnclient.config.manager.Property; import org.saturnclient.ui2.RenderScope; import org.saturnclient.ui2.resources.Fonts; diff --git a/src/main/java/org/saturnclient/modules/mods/Keystrokes.java b/src/main/java/org/saturnclient/modules/mods/Keystrokes.java index 7b356ea..f67e755 100644 --- a/src/main/java/org/saturnclient/modules/mods/Keystrokes.java +++ b/src/main/java/org/saturnclient/modules/mods/Keystrokes.java @@ -4,7 +4,7 @@ import org.saturnclient.modules.Module; import org.saturnclient.modules.HudMod; import org.saturnclient.modules.ModDimensions; import org.saturnclient.saturnclient.SaturnClient; -import org.saturnclient.saturnclient.config.Property; +import org.saturnclient.saturnclient.config.manager.Property; import org.saturnclient.ui2.RenderScope; import org.saturnclient.modules.ModuleDetails; diff --git a/src/main/java/org/saturnclient/modules/mods/Nametags.java b/src/main/java/org/saturnclient/modules/mods/Nametags.java index c1ebeb9..5f4948f 100644 --- a/src/main/java/org/saturnclient/modules/mods/Nametags.java +++ b/src/main/java/org/saturnclient/modules/mods/Nametags.java @@ -3,7 +3,7 @@ package org.saturnclient.modules.mods; import org.saturnclient.modules.Module; import org.saturnclient.modules.ModuleDetails; import org.saturnclient.modules.mods.utils.HealthRenderState; -import org.saturnclient.saturnclient.config.Property; +import org.saturnclient.saturnclient.config.manager.Property; import net.minecraft.client.render.entity.state.LivingEntityRenderState; diff --git a/src/main/java/org/saturnclient/modules/mods/NoFog.java b/src/main/java/org/saturnclient/modules/mods/NoFog.java index 14c3ace..bd8d17e 100644 --- a/src/main/java/org/saturnclient/modules/mods/NoFog.java +++ b/src/main/java/org/saturnclient/modules/mods/NoFog.java @@ -2,7 +2,7 @@ package org.saturnclient.modules.mods; import org.saturnclient.modules.Module; import org.saturnclient.modules.ModuleDetails; -import org.saturnclient.saturnclient.config.Property; +import org.saturnclient.saturnclient.config.manager.Property; public class NoFog extends Module { private static Property enabled = Property.bool(false); diff --git a/src/main/java/org/saturnclient/modules/mods/Ping.java b/src/main/java/org/saturnclient/modules/mods/Ping.java index e75d5ad..06c103d 100644 --- a/src/main/java/org/saturnclient/modules/mods/Ping.java +++ b/src/main/java/org/saturnclient/modules/mods/Ping.java @@ -4,7 +4,7 @@ import org.saturnclient.modules.HudMod; import org.saturnclient.modules.ModDimensions; import org.saturnclient.modules.Module; import org.saturnclient.modules.ModuleDetails; -import org.saturnclient.saturnclient.config.Property; +import org.saturnclient.saturnclient.config.manager.Property; import org.saturnclient.ui2.RenderScope; import org.saturnclient.ui2.resources.Fonts; diff --git a/src/main/java/org/saturnclient/modules/mods/Speedometer.java b/src/main/java/org/saturnclient/modules/mods/Speedometer.java index ddb17f2..ec3663c 100644 --- a/src/main/java/org/saturnclient/modules/mods/Speedometer.java +++ b/src/main/java/org/saturnclient/modules/mods/Speedometer.java @@ -5,7 +5,7 @@ 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.saturnclient.config.manager.Property; import org.saturnclient.ui2.RenderScope; import org.saturnclient.ui2.resources.Fonts; diff --git a/src/main/java/org/saturnclient/modules/mods/StatusEffects.java b/src/main/java/org/saturnclient/modules/mods/StatusEffects.java index e25dd27..3d4a1e0 100644 --- a/src/main/java/org/saturnclient/modules/mods/StatusEffects.java +++ b/src/main/java/org/saturnclient/modules/mods/StatusEffects.java @@ -7,7 +7,7 @@ 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.saturnclient.config.manager.Property; import org.saturnclient.ui2.RenderScope; import net.minecraft.client.resource.language.I18n; diff --git a/src/main/java/org/saturnclient/modules/mods/Tps.java b/src/main/java/org/saturnclient/modules/mods/Tps.java index 923adb9..a8eb977 100644 --- a/src/main/java/org/saturnclient/modules/mods/Tps.java +++ b/src/main/java/org/saturnclient/modules/mods/Tps.java @@ -4,7 +4,7 @@ import org.saturnclient.modules.HudMod; import org.saturnclient.modules.ModDimensions; import org.saturnclient.modules.Module; import org.saturnclient.modules.ModuleDetails; -import org.saturnclient.saturnclient.config.Property; +import org.saturnclient.saturnclient.config.manager.Property; import org.saturnclient.ui2.RenderScope; import org.saturnclient.ui2.resources.Fonts; diff --git a/src/main/java/org/saturnclient/modules/mods/Zoom.java b/src/main/java/org/saturnclient/modules/mods/Zoom.java index 32dc738..cd9d28a 100644 --- a/src/main/java/org/saturnclient/modules/mods/Zoom.java +++ b/src/main/java/org/saturnclient/modules/mods/Zoom.java @@ -3,7 +3,7 @@ package org.saturnclient.modules.mods; import org.lwjgl.glfw.GLFW; import org.saturnclient.modules.Module; import org.saturnclient.modules.ModuleDetails; -import org.saturnclient.saturnclient.config.Property; +import org.saturnclient.saturnclient.config.manager.Property; public class Zoom extends Module { private static Property enabled = Property.bool(false); diff --git a/src/main/java/org/saturnclient/saturnclient/SaturnClient.java b/src/main/java/org/saturnclient/saturnclient/SaturnClient.java index 1894a58..945e3d7 100644 --- a/src/main/java/org/saturnclient/saturnclient/SaturnClient.java +++ b/src/main/java/org/saturnclient/saturnclient/SaturnClient.java @@ -8,8 +8,8 @@ import net.minecraft.client.util.math.MatrixStack; import org.saturnclient.modules.ModManager; import org.saturnclient.saturnclient.client.ServiceClient; -import org.saturnclient.saturnclient.config.ConfigManager; -import org.saturnclient.saturnclient.config.SaturnClientConfig; +import org.saturnclient.saturnclient.config.Config; +import org.saturnclient.saturnclient.config.manager.ConfigManager; import org.saturnclient.saturnclient.cosmetics.Emotes; import org.saturnclient.saturnclient.cosmetics.Hats; import org.saturnclient.saturnclient.cosmetics.cloaks.Cloaks; @@ -38,7 +38,7 @@ public class SaturnClient implements ModInitializer { public void onInitialize() { LOGGER.info("Initializing " + MOD_ID); client = MinecraftClient.getInstance(); - SaturnClientConfig.init(); + Config.init(); ModManager.init(); client.execute(() -> { diff --git a/src/main/java/org/saturnclient/saturnclient/client/player/Roles.java b/src/main/java/org/saturnclient/saturnclient/client/player/Roles.java index 8771960..fdc47cb 100644 --- a/src/main/java/org/saturnclient/saturnclient/client/player/Roles.java +++ b/src/main/java/org/saturnclient/saturnclient/client/player/Roles.java @@ -3,7 +3,7 @@ package org.saturnclient.saturnclient.client.player; import java.util.Map; import java.util.UUID; -import org.saturnclient.saturnclient.config.SaturnClientConfig; +import org.saturnclient.saturnclient.config.Config; import net.minecraft.util.Formatting; @@ -54,6 +54,6 @@ public class Roles { } public static String getSaturnIndicator() { - return SaturnClientConfig.realisticLogo.value ? "" : ""; + return Config.realisticLogo.value ? "" : ""; } } diff --git a/src/main/java/org/saturnclient/saturnclient/config/AnimationConfig.java b/src/main/java/org/saturnclient/saturnclient/config/AnimationConfig.java new file mode 100644 index 0000000..efd19d7 --- /dev/null +++ b/src/main/java/org/saturnclient/saturnclient/config/AnimationConfig.java @@ -0,0 +1,50 @@ +package org.saturnclient.saturnclient.config; + +import org.saturnclient.saturnclient.config.manager.ConfigManager; +import org.saturnclient.saturnclient.config.manager.Property; + +public class AnimationConfig { + public static ConfigManager config; + + // Animation curve + public static final Property animationCurve = Property.select(1, "Ease In Out", "Ease Out"); + + // Logo duration + public static final Property logoDuration = Property.integer(700); + + // Main menu + public static final AnimationConfig mainMenu = new AnimationConfig(true, 1000, 120); + + // Mod menu + public static final AnimationConfig modMenu = new AnimationConfig(true, 600, 40); + + // Shift menu + public static final AnimationConfig shiftMenu = new AnimationConfig(true, 300, 50); + + public static void init(ConfigManager parent) { + ConfigManager config = new ConfigManager(parent, "Animations"); + config.property("Animation Curve", animationCurve); + config.property("Logo Duration", logoDuration); + + mainMenu.init("Main Menu"); + mainMenu.init("Mod Menu"); + mainMenu.init("Shift Menu"); + } + + // Animation properties + // public final Property enabled; + public final Property duration; + public final Property stagger; + + public AnimationConfig(boolean enabled, int delay, int stagger) { + // this.enabled = Property.bool(enabled); + this.duration = Property.integer(delay); + this.stagger = Property.integer(stagger); + } + + public void init(String name) { + // config.property("Enable " + name + " Animations", this.enabled); + config.property(name + " Duration", this.stagger); + config.property(name + " Stagger", this.stagger); + } +} diff --git a/src/main/java/org/saturnclient/saturnclient/config/SaturnClientConfig.java b/src/main/java/org/saturnclient/saturnclient/config/Config.java similarity index 70% rename from src/main/java/org/saturnclient/saturnclient/config/SaturnClientConfig.java rename to src/main/java/org/saturnclient/saturnclient/config/Config.java index 31afbc8..08a5b90 100644 --- a/src/main/java/org/saturnclient/saturnclient/config/SaturnClientConfig.java +++ b/src/main/java/org/saturnclient/saturnclient/config/Config.java @@ -1,14 +1,13 @@ package org.saturnclient.saturnclient.config; -import java.util.function.Function; - import org.lwjgl.glfw.GLFW; -import org.saturnclient.ui2.anim.Curve; +import org.saturnclient.saturnclient.config.manager.ConfigManager; +import org.saturnclient.saturnclient.config.manager.Property; import org.saturnclient.ui2.resources.Textures; import net.minecraft.util.Identifier; -public class SaturnClientConfig { +public class Config { public static ConfigManager config; public static Property realisticLogo = Property.bool(false); @@ -16,19 +15,11 @@ 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); @@ -36,9 +27,11 @@ 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); + + // Initialize a sub namespace for animations + AnimationConfig.init(config); } } diff --git a/src/main/java/org/saturnclient/saturnclient/config/Theme.java b/src/main/java/org/saturnclient/saturnclient/config/Theme.java index 29cb887..bf58fae 100644 --- a/src/main/java/org/saturnclient/saturnclient/config/Theme.java +++ b/src/main/java/org/saturnclient/saturnclient/config/Theme.java @@ -1,5 +1,8 @@ package org.saturnclient.saturnclient.config; +import org.saturnclient.saturnclient.config.manager.ConfigManager; +import org.saturnclient.saturnclient.config.manager.Property; + public class Theme { // Main UI background (slightly warm dark to match Saturn tone) public static final Property BACKGROUND = Property.color(0xFF12100D); @@ -26,8 +29,8 @@ public class Theme { public static final Property BG_RADIUS = Property.integer(12); public static final Property WIDGET_RADIUS = Property.integer(10); - // Font (keeping your current system) - public static Property FONT = Property.font(1); + // Font + public static final Property FONT = Property.font(1); public static void init(ConfigManager parent) { ConfigManager config = new ConfigManager(parent, "UI Style"); diff --git a/src/main/java/org/saturnclient/saturnclient/config/ConfigManager.java b/src/main/java/org/saturnclient/saturnclient/config/manager/ConfigManager.java similarity index 98% rename from src/main/java/org/saturnclient/saturnclient/config/ConfigManager.java rename to src/main/java/org/saturnclient/saturnclient/config/manager/ConfigManager.java index bc628b1..9bdc10d 100644 --- a/src/main/java/org/saturnclient/saturnclient/config/ConfigManager.java +++ b/src/main/java/org/saturnclient/saturnclient/config/manager/ConfigManager.java @@ -1,4 +1,4 @@ -package org.saturnclient.saturnclient.config; +package org.saturnclient.saturnclient.config.manager; import com.google.gson.*; import org.saturnclient.saturnclient.SaturnClient; diff --git a/src/main/java/org/saturnclient/saturnclient/config/Property.java b/src/main/java/org/saturnclient/saturnclient/config/manager/Property.java similarity index 99% rename from src/main/java/org/saturnclient/saturnclient/config/Property.java rename to src/main/java/org/saturnclient/saturnclient/config/manager/Property.java index 2d7dd2e..45ef2b5 100644 --- a/src/main/java/org/saturnclient/saturnclient/config/Property.java +++ b/src/main/java/org/saturnclient/saturnclient/config/manager/Property.java @@ -1,4 +1,4 @@ -package org.saturnclient.saturnclient.config; +package org.saturnclient.saturnclient.config.manager; import java.util.Map; diff --git a/src/main/java/org/saturnclient/saturnclient/cosmetics/CloakFeatureRenderer.java b/src/main/java/org/saturnclient/saturnclient/cosmetics/CloakFeatureRenderer.java index bafc998..6dc23bd 100644 --- a/src/main/java/org/saturnclient/saturnclient/cosmetics/CloakFeatureRenderer.java +++ b/src/main/java/org/saturnclient/saturnclient/cosmetics/CloakFeatureRenderer.java @@ -1,7 +1,7 @@ package org.saturnclient.saturnclient.cosmetics; import org.saturnclient.saturnclient.client.player.SaturnPlayer; -import org.saturnclient.saturnclient.config.SaturnClientConfig; +import org.saturnclient.saturnclient.config.Config; import org.saturnclient.saturnclient.cosmetics.cloaks.Cloaks; import net.minecraft.client.render.OverlayTexture; @@ -339,7 +339,7 @@ public class CloakFeatureRenderer extends FeatureRenderer { - SaturnClient.client.setScreen(new ConfigEditor(SaturnClientConfig.config)); + SaturnClient.client.setScreen(new ConfigEditor(Config.config)); }, false), new Sidebar.SidebarComponent(Textures.SHIRT, () -> { diff --git a/src/main/java/org/saturnclient/ui2/components/inputs/FloatInput.java b/src/main/java/org/saturnclient/ui2/components/inputs/FloatInput.java index e3d365f..d1d3b37 100644 --- a/src/main/java/org/saturnclient/ui2/components/inputs/FloatInput.java +++ b/src/main/java/org/saturnclient/ui2/components/inputs/FloatInput.java @@ -1,7 +1,7 @@ package org.saturnclient.ui2.components.inputs; -import org.saturnclient.saturnclient.config.ConfigManager; -import org.saturnclient.saturnclient.config.Property; +import org.saturnclient.saturnclient.config.manager.ConfigManager; +import org.saturnclient.saturnclient.config.manager.Property; import org.saturnclient.ui2.resources.Fonts; public class FloatInput extends Input { diff --git a/src/main/java/org/saturnclient/ui2/components/inputs/HexInput.java b/src/main/java/org/saturnclient/ui2/components/inputs/HexInput.java index aa49018..92830a1 100644 --- a/src/main/java/org/saturnclient/ui2/components/inputs/HexInput.java +++ b/src/main/java/org/saturnclient/ui2/components/inputs/HexInput.java @@ -2,7 +2,7 @@ package org.saturnclient.ui2.components.inputs; import java.awt.Color; -import org.saturnclient.saturnclient.config.Property; +import org.saturnclient.saturnclient.config.manager.Property; import org.saturnclient.ui2.Element; import org.saturnclient.ui2.ElementContext; import org.saturnclient.ui2.RenderScope; diff --git a/src/main/java/org/saturnclient/ui2/components/inputs/IntInput.java b/src/main/java/org/saturnclient/ui2/components/inputs/IntInput.java index 9a8d741..af43dc8 100644 --- a/src/main/java/org/saturnclient/ui2/components/inputs/IntInput.java +++ b/src/main/java/org/saturnclient/ui2/components/inputs/IntInput.java @@ -1,7 +1,7 @@ package org.saturnclient.ui2.components.inputs; -import org.saturnclient.saturnclient.config.ConfigManager; -import org.saturnclient.saturnclient.config.Property; +import org.saturnclient.saturnclient.config.manager.ConfigManager; +import org.saturnclient.saturnclient.config.manager.Property; import org.saturnclient.ui2.resources.Fonts; public class IntInput extends Input { diff --git a/src/main/java/org/saturnclient/ui2/components/inputs/KeybindingSelector.java b/src/main/java/org/saturnclient/ui2/components/inputs/KeybindingSelector.java index f85d76e..e4ebafc 100644 --- a/src/main/java/org/saturnclient/ui2/components/inputs/KeybindingSelector.java +++ b/src/main/java/org/saturnclient/ui2/components/inputs/KeybindingSelector.java @@ -1,8 +1,8 @@ package org.saturnclient.ui2.components.inputs; import org.lwjgl.glfw.GLFW; -import org.saturnclient.saturnclient.config.Property; import org.saturnclient.saturnclient.config.Theme; +import org.saturnclient.saturnclient.config.manager.Property; import org.saturnclient.ui2.Element; import org.saturnclient.ui2.ElementContext; import org.saturnclient.ui2.RenderScope; diff --git a/src/main/java/org/saturnclient/ui2/components/inputs/Select.java b/src/main/java/org/saturnclient/ui2/components/inputs/Select.java index 31aeedf..59c2c65 100644 --- a/src/main/java/org/saturnclient/ui2/components/inputs/Select.java +++ b/src/main/java/org/saturnclient/ui2/components/inputs/Select.java @@ -1,7 +1,7 @@ package org.saturnclient.ui2.components.inputs; -import org.saturnclient.saturnclient.config.Property; import org.saturnclient.saturnclient.config.Theme; +import org.saturnclient.saturnclient.config.manager.Property; import org.saturnclient.ui2.Element; import org.saturnclient.ui2.ElementContext; import org.saturnclient.ui2.RenderScope; diff --git a/src/main/java/org/saturnclient/ui2/components/inputs/Toggle.java b/src/main/java/org/saturnclient/ui2/components/inputs/Toggle.java index e692ad9..0ff8705 100644 --- a/src/main/java/org/saturnclient/ui2/components/inputs/Toggle.java +++ b/src/main/java/org/saturnclient/ui2/components/inputs/Toggle.java @@ -1,7 +1,7 @@ package org.saturnclient.ui2.components.inputs; -import org.saturnclient.saturnclient.config.Property; import org.saturnclient.saturnclient.config.Theme; +import org.saturnclient.saturnclient.config.manager.Property; import org.saturnclient.ui2.Element; import org.saturnclient.ui2.ElementContext; import org.saturnclient.ui2.RenderScope; diff --git a/src/main/java/org/saturnclient/ui2/elements/AnimationStagger.java b/src/main/java/org/saturnclient/ui2/elements/AnimationStagger.java index c908b82..6f68f88 100644 --- a/src/main/java/org/saturnclient/ui2/elements/AnimationStagger.java +++ b/src/main/java/org/saturnclient/ui2/elements/AnimationStagger.java @@ -3,7 +3,7 @@ package org.saturnclient.ui2.elements; import java.util.ArrayList; import java.util.List; -import org.saturnclient.saturnclient.config.SaturnClientConfig; +import org.saturnclient.saturnclient.config.Config; import org.saturnclient.ui2.Element; import org.saturnclient.ui2.ElementContext; import org.saturnclient.ui2.RenderScope; @@ -18,7 +18,7 @@ public class AnimationStagger extends Element { } public void draw(Element element) { - if (!SaturnClientConfig.stagger.value) { + if (!Config.stagger.value) { element.animation = null; } diff --git a/src/main/java/org/saturnclient/ui2/elements/Notification.java b/src/main/java/org/saturnclient/ui2/elements/Notification.java index 0da60c7..72fae8d 100644 --- a/src/main/java/org/saturnclient/ui2/elements/Notification.java +++ b/src/main/java/org/saturnclient/ui2/elements/Notification.java @@ -1,7 +1,7 @@ package org.saturnclient.ui2.elements; -import org.saturnclient.saturnclient.config.Property; import org.saturnclient.saturnclient.config.Theme; +import org.saturnclient.saturnclient.config.manager.Property; import org.saturnclient.ui2.Element; import org.saturnclient.ui2.ElementContext; import org.saturnclient.ui2.RenderScope; diff --git a/src/main/java/org/saturnclient/ui2/elements/Scroll.java b/src/main/java/org/saturnclient/ui2/elements/Scroll.java index b9c8848..780e9b8 100644 --- a/src/main/java/org/saturnclient/ui2/elements/Scroll.java +++ b/src/main/java/org/saturnclient/ui2/elements/Scroll.java @@ -3,8 +3,8 @@ package org.saturnclient.ui2.elements; import java.util.ArrayList; import java.util.List; -import org.saturnclient.saturnclient.config.Property; import org.saturnclient.saturnclient.config.Theme; +import org.saturnclient.saturnclient.config.manager.Property; import org.saturnclient.ui2.Element; import org.saturnclient.ui2.ElementContext; import org.saturnclient.ui2.RenderScope; diff --git a/src/main/java/org/saturnclient/ui2/screens/ConfigEditor.java b/src/main/java/org/saturnclient/ui2/screens/ConfigEditor.java index c56ed4a..52d2f55 100644 --- a/src/main/java/org/saturnclient/ui2/screens/ConfigEditor.java +++ b/src/main/java/org/saturnclient/ui2/screens/ConfigEditor.java @@ -2,9 +2,9 @@ package org.saturnclient.ui2.screens; import java.util.Map; -import org.saturnclient.saturnclient.config.ConfigManager; -import org.saturnclient.saturnclient.config.Property; import org.saturnclient.saturnclient.config.Theme; +import org.saturnclient.saturnclient.config.manager.ConfigManager; +import org.saturnclient.saturnclient.config.manager.Property; import org.saturnclient.ui2.SaturnScreen; import org.saturnclient.ui2.components.Sidebar; import org.saturnclient.ui2.components.inputs.FloatInput; diff --git a/src/main/java/org/saturnclient/ui2/screens/EmoteWheel.java b/src/main/java/org/saturnclient/ui2/screens/EmoteWheel.java index 55d6fe1..75a902f 100644 --- a/src/main/java/org/saturnclient/ui2/screens/EmoteWheel.java +++ b/src/main/java/org/saturnclient/ui2/screens/EmoteWheel.java @@ -2,7 +2,7 @@ package org.saturnclient.ui2.screens; import org.saturnclient.saturnclient.SaturnClient; import org.saturnclient.saturnclient.client.ServiceClient; -import org.saturnclient.saturnclient.config.SaturnClientConfig; +import org.saturnclient.saturnclient.config.Config; import org.saturnclient.saturnclient.cosmetics.Emotes; import org.saturnclient.ui2.SaturnScreen; import org.saturnclient.ui2.Utils; @@ -31,7 +31,7 @@ public class EmoteWheel extends SaturnScreen { draw(new ImageTexture(Textures.LOGO_TEXT).dimensions(98, 10).centerOffset(width, height, 0, -105) .animation(new Fade(700))); - draw(new ImageTexture(SaturnClientConfig.getLogo()).dimensions(98, 98).centerOffset(width, height, 0, -149) + draw(new ImageTexture(Config.getLogo()).dimensions(98, 98).centerOffset(width, height, 0, -149) .animation(new SlideY(700, -20))); draw(new TextureButton(Textures.LEFT, () -> { diff --git a/src/main/java/org/saturnclient/ui2/screens/ModMenu.java b/src/main/java/org/saturnclient/ui2/screens/ModMenu.java index 2d3af9f..caf9195 100644 --- a/src/main/java/org/saturnclient/ui2/screens/ModMenu.java +++ b/src/main/java/org/saturnclient/ui2/screens/ModMenu.java @@ -2,7 +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.saturnclient.config.AnimationConfig; import org.saturnclient.ui2.SaturnScreen; import org.saturnclient.ui2.anim.SlideFade; import org.saturnclient.ui2.components.SaturnModule; @@ -27,13 +27,13 @@ public class ModMenu extends SaturnScreen { int row = 0; int col = 0; - AnimationStagger moduleStagger = new AnimationStagger(20); + AnimationStagger moduleStagger = new AnimationStagger(AnimationConfig.modMenu.stagger.value); for (Module mod : ModManager.ALL_MODS) { moduleStagger.draw( new SaturnModule(mod) .position((160 + g) * col, (50 + g) * row) - .animation(new SlideFade(600, -12), SaturnClientConfig.getAnimationCurve())); + .animation(new SlideFade(AnimationConfig.modMenu.duration.value, -12))); 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 6277afe..4c9d837 100644 --- a/src/main/java/org/saturnclient/ui2/screens/ShiftMenu.java +++ b/src/main/java/org/saturnclient/ui2/screens/ShiftMenu.java @@ -1,7 +1,8 @@ package org.saturnclient.ui2.screens; import org.saturnclient.saturnclient.SaturnClient; -import org.saturnclient.saturnclient.config.SaturnClientConfig; +import org.saturnclient.saturnclient.config.AnimationConfig; +import org.saturnclient.saturnclient.config.Config; import org.saturnclient.saturnclient.menus.HudEditor; import org.saturnclient.ui2.resources.Textures; import org.saturnclient.ui2.screens.cosmetics.CloakMenu; @@ -24,12 +25,12 @@ public class ShiftMenu extends SaturnScreen { draw(new ImageTexture(Textures.LOGO_TEXT) .dimensions(98, 10) .centerOffset(width, height, 0, -36) - .animation(new Fade(700))); + .animation(new Fade(AnimationConfig.logoDuration.value))); - draw(new ImageTexture(SaturnClientConfig.getLogo()) + draw(new ImageTexture(Config.getLogo()) .dimensions(98, 98) .centerOffset(width, height, 0, -80) - .animation(new SlideY(700, -20))); + .animation(new SlideY(AnimationConfig.logoDuration.value, -20))); // Spacing and sizes int btnWidth = 120; @@ -37,22 +38,23 @@ public class ShiftMenu extends SaturnScreen { int spacing = 4; // Create stagger - AnimationStagger stagger = new AnimationStagger(50); + + AnimationStagger stagger = new AnimationStagger(AnimationConfig.shiftMenu.stagger.value); stagger.draw(new TextureButton(Textures.HUD_ICON, () -> { client.setScreen(new HudEditor()); }).dimensions(btnHeight, btnHeight).position(0, 0) - .animation(new Fade(300))); + .animation(new Fade(AnimationConfig.shiftMenu.duration.value))); stagger.draw(new Button("Settings", () -> { SaturnClient.client.setScreen(new ModMenu()); }).dimensions(btnWidth, btnHeight).position(btnHeight + spacing, 0) - .animation(new Fade(300))); + .animation(new Fade(AnimationConfig.shiftMenu.duration.value))); stagger.draw(new TextureButton(Textures.COSMETICS, () -> { client.setScreen(new CloakMenu()); }).dimensions(btnHeight, btnHeight).position(btnWidth + btnHeight + (spacing * 2), 0) - .animation(new Fade(300))); + .animation(new Fade(AnimationConfig.shiftMenu.duration.value))); // Draw the stagger at the absolute center of the screen draw(stagger.dimensions(btnWidth + (btnHeight * 2) + (spacing * 2), btnHeight).centerOffset(width, height, 0, diff --git a/src/main/java/org/saturnclient/ui2/screens/TitleMenu.java b/src/main/java/org/saturnclient/ui2/screens/TitleMenu.java index ebffa12..7e641b4 100644 --- a/src/main/java/org/saturnclient/ui2/screens/TitleMenu.java +++ b/src/main/java/org/saturnclient/ui2/screens/TitleMenu.java @@ -1,7 +1,8 @@ package org.saturnclient.ui2.screens; import org.saturnclient.saturnclient.SaturnClient; -import org.saturnclient.saturnclient.config.SaturnClientConfig; +import org.saturnclient.saturnclient.config.AnimationConfig; +import org.saturnclient.saturnclient.config.Config; import org.saturnclient.saturnclient.menus.HudEditor; import org.saturnclient.ui2.resources.Textures; import org.saturnclient.ui2.screens.cosmetics.CloakMenu; @@ -30,44 +31,50 @@ public class TitleMenu extends SaturnScreen { draw(new ImageTexture(Textures.LOGO_TEXT).dimensions(98, 10).centerOffset(width, height, 0, -36) .animation(new Fade(700))); - draw(new ImageTexture(SaturnClientConfig.getLogo()).dimensions(98, 98).centerOffset(width, height, 0, -82) + draw(new ImageTexture(Config.getLogo()).dimensions(98, 98).centerOffset(width, height, 0, -82) .animation(new SlideY(700, -20))); - AnimationStagger mainButtonStagger = new AnimationStagger(120); + AnimationStagger mainButtonStagger = new AnimationStagger(AnimationConfig.mainMenu.stagger.value); mainButtonStagger.draw(new Button("SINGLEPLAYER", () -> { client.setScreen(new SelectWorldScreen(new TitleMenu())); - }).scale(0.69f).dimensions(420, 52).position(0, 0).animation(new SlideFade(1000, -10))); + }).scale(0.69f).dimensions(420, 52).position(0, 0) + .animation(new SlideFade(AnimationConfig.mainMenu.duration.value, -10))); mainButtonStagger.draw(new Button("MULTIPLAYER", () -> { client.setScreen(new MultiplayerScreen(new TitleMenu())); - }).scale(0.69f).dimensions(420, 52).position(0, 40).animation(new SlideFade(1000, -10))); + }).scale(0.69f).dimensions(420, 52).position(0, 40) + .animation(new SlideFade(AnimationConfig.mainMenu.duration.value, -10))); mainButtonStagger.draw(new Button("OPTIONS", () -> { client.setScreen(new OptionsScreen(new TitleMenu(), SaturnClient.client.options)); - }).scale(0.69f).dimensions(206, 52).position(0, 80).animation(new SlideFade(1000, -10))); + }).scale(0.69f).dimensions(206, 52).position(0, 80) + .animation(new SlideFade(AnimationConfig.mainMenu.duration.value, -10))); mainButtonStagger.draw(new Button("QUIT", () -> { client.scheduleStop(); - }).scale(0.69f).dimensions(206, 52).position(146, 80).animation(new SlideFade(1000, -10))); + }).scale(0.69f).dimensions(206, 52).position(146, 80) + .animation(new SlideFade(AnimationConfig.mainMenu.duration.value, -10))); draw(mainButtonStagger.dimensions(289, 143).centerOffset(width, height, 0, 60)); int s = Fonts.getHeight() + 20; - AnimationStagger saturnStagger = new AnimationStagger(180); + AnimationStagger saturnStagger = new AnimationStagger(AnimationConfig.mainMenu.stagger.value); saturnStagger.draw(new TextureButton(Textures.HUD_ICON, () -> { client.setScreen(new HudEditor()); - }).dimensions(s, s).position(0, 0).animation(new SlideFade(1000, s + 8))); + }).dimensions(s, s).position(0, 0).animation(new SlideFade(AnimationConfig.mainMenu.duration.value, s + 8))); saturnStagger.draw(new TextureButton(Textures.SETTINGS, () -> { SaturnClient.client.setScreen(new ModMenu()); - }).dimensions(s, s).position(s + 2, 0).animation(new SlideFade(1000, s + 8))); + }).dimensions(s, s).position(s + 2, 0) + .animation(new SlideFade(AnimationConfig.mainMenu.duration.value, s + 8))); saturnStagger.draw(new TextureButton(Textures.CLOAK, () -> { client.setScreen(new CloakMenu()); - }).dimensions(s, s).position((s + 2) * 2, 0).animation(new SlideFade(1000, s + 8))); + }).dimensions(s, s).position((s + 2) * 2, 0) + .animation(new SlideFade(AnimationConfig.mainMenu.duration.value, s + 8))); draw(saturnStagger.dimensions(((s + 2) * 2) + s, s).centerHorizontal(width, height, 0, 8)); }