Animation config

This commit is contained in:
2026-02-25 00:18:16 +01:00
parent 038c859133
commit eb065b20d7
46 changed files with 146 additions and 91 deletions
@@ -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<Integer> x = Property.integer(0);
@@ -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;
@@ -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;
@@ -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<Boolean> enabled = Property.bool(false);
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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<Boolean> enabled = Property.bool(false);
@@ -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;
@@ -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;
@@ -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;
@@ -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<Boolean> enabled = Property.bool(false);
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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<Boolean> enabled = Property.bool(false);
@@ -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(() -> {
@@ -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 ? "" : "";
}
}
@@ -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<Integer> animationCurve = Property.select(1, "Ease In Out", "Ease Out");
// Logo duration
public static final Property<Integer> 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<Boolean> enabled;
public final Property<Integer> duration;
public final Property<Integer> 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);
}
}
@@ -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<Boolean> realisticLogo = Property.bool(false);
@@ -16,19 +15,11 @@ 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);
@@ -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);
}
}
@@ -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<Integer> BACKGROUND = Property.color(0xFF12100D);
@@ -26,8 +29,8 @@ public class Theme {
public static final Property<Integer> BG_RADIUS = Property.integer(12);
public static final Property<Integer> WIDGET_RADIUS = Property.integer(10);
// Font (keeping your current system)
public static Property<Integer> FONT = Property.font(1);
// Font
public static final Property<Integer> FONT = Property.font(1);
public static void init(ConfigManager parent) {
ConfigManager config = new ConfigManager(parent, "UI Style");
@@ -1,4 +1,4 @@
package org.saturnclient.saturnclient.config;
package org.saturnclient.saturnclient.config.manager;
import com.google.gson.*;
import org.saturnclient.saturnclient.SaturnClient;
@@ -1,4 +1,4 @@
package org.saturnclient.saturnclient.config;
package org.saturnclient.saturnclient.config.manager;
import java.util.Map;
@@ -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<PlayerEntityRenderStat
rotation = 0.0f;
}
if (!SaturnClientConfig.bendyCloaks.value) {
if (!Config.bendyCloaks.value) {
curve = 0.0f;
}
@@ -7,7 +7,7 @@ import net.minecraft.client.util.InputUtil;
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.ui2.screens.EmoteWheel;
import org.saturnclient.ui2.screens.ShiftMenu;
@@ -39,7 +39,7 @@ public class KeyInputHandler {
client.setScreen(new ShiftMenu());
}
if (SaturnClientConfig.openEmoteWheel.wasKeyPressed() && client.currentScreen == null && !InputUtil.isKeyPressed(client.getWindow().getHandle(), GLFW.GLFW_KEY_F3)) {
if (Config.openEmoteWheel.wasKeyPressed() && client.currentScreen == null && !InputUtil.isKeyPressed(client.getWindow().getHandle(), GLFW.GLFW_KEY_F3)) {
client.setScreen(new EmoteWheel());
}
@@ -9,7 +9,7 @@ import org.saturnclient.modules.HudMod;
import org.saturnclient.modules.ModDimensions;
import org.saturnclient.modules.ModManager;
import org.saturnclient.modules.Module;
import org.saturnclient.saturnclient.config.ConfigManager;
import org.saturnclient.saturnclient.config.manager.ConfigManager;
import org.saturnclient.saturnclient.mixin.DrawContextAccessor;
import org.saturnclient.ui2.RenderScope;
import org.saturnclient.ui2.SaturnScreen;
@@ -1,6 +1,6 @@
package org.saturnclient.saturnclient.mixin;
import org.saturnclient.saturnclient.config.SaturnClientConfig;
import org.saturnclient.saturnclient.config.Config;
import org.saturnclient.ui2.screens.TitleMenu;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
@@ -14,7 +14,7 @@ import net.minecraft.client.gui.screen.TitleScreen;
public class SetScreenMixin {
@ModifyVariable(method = "setScreen", at = @At("HEAD"), argsOnly = true)
private Screen replaceTitleScreen(Screen screen) {
if (SaturnClientConfig.saturnTitleScreen.value) {
if (Config.saturnTitleScreen.value) {
if (screen instanceof TitleScreen)
return new TitleMenu();
if (screen == null && ((MinecraftClient) (Object) this).world == null)
@@ -1,7 +1,7 @@
package org.saturnclient.ui2.components;
import org.saturnclient.saturnclient.SaturnClient;
import org.saturnclient.saturnclient.config.SaturnClientConfig;
import org.saturnclient.saturnclient.config.Config;
import org.saturnclient.saturnclient.config.Theme;
import org.saturnclient.ui2.resources.Textures;
import org.saturnclient.ui2.Element;
@@ -35,7 +35,7 @@ public class Sidebar extends Element {
SaturnClient.client.setScreen(new ModMenu());
}, false),
new Sidebar.SidebarComponent(Textures.SETTINGS, () -> {
SaturnClient.client.setScreen(new ConfigEditor(SaturnClientConfig.config));
SaturnClient.client.setScreen(new ConfigEditor(Config.config));
}, false),
new Sidebar.SidebarComponent(Textures.SHIRT, () -> {
@@ -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 {
@@ -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;
@@ -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 {
@@ -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;
@@ -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;
@@ -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;
@@ -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;
}
@@ -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;
@@ -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;
@@ -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;
@@ -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, () -> {
@@ -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;
@@ -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,
@@ -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));
}