Merge pull request #28 from saturnclientmc/animation-settings
Animation settings
This commit is contained in:
@@ -2,8 +2,8 @@ package org.saturnclient.modules;
|
|||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import org.saturnclient.saturnclient.config.Property.NamedProperty;
|
import org.saturnclient.saturnclient.config.manager.Property;
|
||||||
import org.saturnclient.saturnclient.config.Property;
|
import org.saturnclient.saturnclient.config.manager.Property.NamedProperty;
|
||||||
|
|
||||||
public class ModDimensions {
|
public class ModDimensions {
|
||||||
public Property<Integer> x = Property.integer(0);
|
public Property<Integer> x = Property.integer(0);
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
package org.saturnclient.modules;
|
package org.saturnclient.modules;
|
||||||
|
|
||||||
import org.saturnclient.saturnclient.config.ConfigManager;
|
|
||||||
import org.saturnclient.ui2.resources.Textures;
|
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.ui2.RenderScope;
|
||||||
import org.saturnclient.saturnclient.config.Property.NamedProperty;
|
|
||||||
|
|
||||||
import net.minecraft.util.Identifier;
|
import net.minecraft.util.Identifier;
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import org.saturnclient.modules.ModDimensions;
|
|||||||
import org.saturnclient.modules.Module;
|
import org.saturnclient.modules.Module;
|
||||||
import org.saturnclient.modules.ModuleDetails;
|
import org.saturnclient.modules.ModuleDetails;
|
||||||
import org.saturnclient.saturnclient.SaturnClient;
|
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.RenderScope;
|
||||||
|
|
||||||
import net.minecraft.entity.EquipmentSlot;
|
import net.minecraft.entity.EquipmentSlot;
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import java.util.Objects;
|
|||||||
import org.saturnclient.modules.Module;
|
import org.saturnclient.modules.Module;
|
||||||
import org.saturnclient.modules.ModuleDetails;
|
import org.saturnclient.modules.ModuleDetails;
|
||||||
import org.saturnclient.saturnclient.SaturnClient;
|
import org.saturnclient.saturnclient.SaturnClient;
|
||||||
import org.saturnclient.saturnclient.config.Property;
|
import org.saturnclient.saturnclient.config.manager.Property;
|
||||||
|
|
||||||
public class AutoSprint extends Module {
|
public class AutoSprint extends Module {
|
||||||
private static Property<Boolean> enabled = Property.bool(false);
|
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.ModDimensions;
|
||||||
import org.saturnclient.modules.Module;
|
import org.saturnclient.modules.Module;
|
||||||
import org.saturnclient.modules.ModuleDetails;
|
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.RenderScope;
|
||||||
import org.saturnclient.ui2.resources.Fonts;
|
import org.saturnclient.ui2.resources.Fonts;
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import org.saturnclient.modules.ModDimensions;
|
|||||||
import org.saturnclient.modules.Module;
|
import org.saturnclient.modules.Module;
|
||||||
import org.saturnclient.modules.ModuleDetails;
|
import org.saturnclient.modules.ModuleDetails;
|
||||||
import org.saturnclient.saturnclient.SaturnClient;
|
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.RenderScope;
|
||||||
import org.saturnclient.ui2.resources.Fonts;
|
import org.saturnclient.ui2.resources.Fonts;
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package org.saturnclient.modules.mods;
|
|||||||
import org.saturnclient.modules.Module;
|
import org.saturnclient.modules.Module;
|
||||||
import org.saturnclient.modules.ModuleDetails;
|
import org.saturnclient.modules.ModuleDetails;
|
||||||
import org.saturnclient.saturnclient.SaturnClient;
|
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.RenderScope;
|
||||||
import org.saturnclient.ui2.resources.Textures;
|
import org.saturnclient.ui2.resources.Textures;
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import org.saturnclient.modules.ModDimensions;
|
|||||||
import org.saturnclient.modules.Module;
|
import org.saturnclient.modules.Module;
|
||||||
import org.saturnclient.modules.ModuleDetails;
|
import org.saturnclient.modules.ModuleDetails;
|
||||||
import org.saturnclient.saturnclient.SaturnClient;
|
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.RenderScope;
|
||||||
import org.saturnclient.ui2.resources.Fonts;
|
import org.saturnclient.ui2.resources.Fonts;
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import org.saturnclient.modules.ModDimensions;
|
|||||||
import org.saturnclient.modules.Module;
|
import org.saturnclient.modules.Module;
|
||||||
import org.saturnclient.modules.ModuleDetails;
|
import org.saturnclient.modules.ModuleDetails;
|
||||||
import org.saturnclient.saturnclient.SaturnClient;
|
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.RenderScope;
|
||||||
import org.saturnclient.ui2.resources.Fonts;
|
import org.saturnclient.ui2.resources.Fonts;
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import org.lwjgl.glfw.GLFW;
|
|||||||
import org.saturnclient.modules.Module;
|
import org.saturnclient.modules.Module;
|
||||||
import org.saturnclient.modules.ModuleDetails;
|
import org.saturnclient.modules.ModuleDetails;
|
||||||
import org.saturnclient.saturnclient.SaturnClient;
|
import org.saturnclient.saturnclient.SaturnClient;
|
||||||
import org.saturnclient.saturnclient.config.Property;
|
import org.saturnclient.saturnclient.config.manager.Property;
|
||||||
|
|
||||||
import net.minecraft.client.option.Perspective;
|
import net.minecraft.client.option.Perspective;
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ package org.saturnclient.modules.mods;
|
|||||||
|
|
||||||
import org.saturnclient.modules.Module;
|
import org.saturnclient.modules.Module;
|
||||||
import org.saturnclient.modules.ModuleDetails;
|
import org.saturnclient.modules.ModuleDetails;
|
||||||
import org.saturnclient.saturnclient.config.Property;
|
import org.saturnclient.saturnclient.config.manager.Property;
|
||||||
|
|
||||||
public class Fullbright extends Module {
|
public class Fullbright extends Module {
|
||||||
private static Property<Boolean> enabled = Property.bool(false);
|
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.Module;
|
||||||
import org.saturnclient.modules.ModuleDetails;
|
import org.saturnclient.modules.ModuleDetails;
|
||||||
import org.saturnclient.saturnclient.SaturnClient;
|
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.RenderScope;
|
||||||
import org.saturnclient.ui2.resources.Fonts;
|
import org.saturnclient.ui2.resources.Fonts;
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import org.saturnclient.modules.Module;
|
|||||||
import org.saturnclient.modules.HudMod;
|
import org.saturnclient.modules.HudMod;
|
||||||
import org.saturnclient.modules.ModDimensions;
|
import org.saturnclient.modules.ModDimensions;
|
||||||
import org.saturnclient.saturnclient.SaturnClient;
|
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.RenderScope;
|
||||||
import org.saturnclient.modules.ModuleDetails;
|
import org.saturnclient.modules.ModuleDetails;
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package org.saturnclient.modules.mods;
|
|||||||
import org.saturnclient.modules.Module;
|
import org.saturnclient.modules.Module;
|
||||||
import org.saturnclient.modules.ModuleDetails;
|
import org.saturnclient.modules.ModuleDetails;
|
||||||
import org.saturnclient.modules.mods.utils.HealthRenderState;
|
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;
|
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.Module;
|
||||||
import org.saturnclient.modules.ModuleDetails;
|
import org.saturnclient.modules.ModuleDetails;
|
||||||
import org.saturnclient.saturnclient.config.Property;
|
import org.saturnclient.saturnclient.config.manager.Property;
|
||||||
|
|
||||||
public class NoFog extends Module {
|
public class NoFog extends Module {
|
||||||
private static Property<Boolean> enabled = Property.bool(false);
|
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.ModDimensions;
|
||||||
import org.saturnclient.modules.Module;
|
import org.saturnclient.modules.Module;
|
||||||
import org.saturnclient.modules.ModuleDetails;
|
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.RenderScope;
|
||||||
import org.saturnclient.ui2.resources.Fonts;
|
import org.saturnclient.ui2.resources.Fonts;
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import org.saturnclient.modules.ModDimensions;
|
|||||||
import org.saturnclient.modules.Module;
|
import org.saturnclient.modules.Module;
|
||||||
import org.saturnclient.modules.ModuleDetails;
|
import org.saturnclient.modules.ModuleDetails;
|
||||||
import org.saturnclient.saturnclient.SaturnClient;
|
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.RenderScope;
|
||||||
import org.saturnclient.ui2.resources.Fonts;
|
import org.saturnclient.ui2.resources.Fonts;
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import org.saturnclient.modules.ModDimensions;
|
|||||||
import org.saturnclient.modules.Module;
|
import org.saturnclient.modules.Module;
|
||||||
import org.saturnclient.modules.ModuleDetails;
|
import org.saturnclient.modules.ModuleDetails;
|
||||||
import org.saturnclient.saturnclient.SaturnClient;
|
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.RenderScope;
|
||||||
|
|
||||||
import net.minecraft.client.resource.language.I18n;
|
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.ModDimensions;
|
||||||
import org.saturnclient.modules.Module;
|
import org.saturnclient.modules.Module;
|
||||||
import org.saturnclient.modules.ModuleDetails;
|
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.RenderScope;
|
||||||
import org.saturnclient.ui2.resources.Fonts;
|
import org.saturnclient.ui2.resources.Fonts;
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package org.saturnclient.modules.mods;
|
|||||||
import org.lwjgl.glfw.GLFW;
|
import org.lwjgl.glfw.GLFW;
|
||||||
import org.saturnclient.modules.Module;
|
import org.saturnclient.modules.Module;
|
||||||
import org.saturnclient.modules.ModuleDetails;
|
import org.saturnclient.modules.ModuleDetails;
|
||||||
import org.saturnclient.saturnclient.config.Property;
|
import org.saturnclient.saturnclient.config.manager.Property;
|
||||||
|
|
||||||
public class Zoom extends Module {
|
public class Zoom extends Module {
|
||||||
private static Property<Boolean> enabled = Property.bool(false);
|
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.modules.ModManager;
|
||||||
import org.saturnclient.saturnclient.client.ServiceClient;
|
import org.saturnclient.saturnclient.client.ServiceClient;
|
||||||
import org.saturnclient.saturnclient.config.ConfigManager;
|
import org.saturnclient.saturnclient.config.Config;
|
||||||
import org.saturnclient.saturnclient.config.SaturnClientConfig;
|
import org.saturnclient.saturnclient.config.manager.ConfigManager;
|
||||||
import org.saturnclient.saturnclient.cosmetics.Emotes;
|
import org.saturnclient.saturnclient.cosmetics.Emotes;
|
||||||
import org.saturnclient.saturnclient.cosmetics.Hats;
|
import org.saturnclient.saturnclient.cosmetics.Hats;
|
||||||
import org.saturnclient.saturnclient.cosmetics.cloaks.Cloaks;
|
import org.saturnclient.saturnclient.cosmetics.cloaks.Cloaks;
|
||||||
@@ -38,7 +38,7 @@ public class SaturnClient implements ModInitializer {
|
|||||||
public void onInitialize() {
|
public void onInitialize() {
|
||||||
LOGGER.info("Initializing " + MOD_ID);
|
LOGGER.info("Initializing " + MOD_ID);
|
||||||
client = MinecraftClient.getInstance();
|
client = MinecraftClient.getInstance();
|
||||||
SaturnClientConfig.init();
|
Config.init();
|
||||||
ModManager.init();
|
ModManager.init();
|
||||||
|
|
||||||
client.execute(() -> {
|
client.execute(() -> {
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package org.saturnclient.saturnclient.client.player;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import org.saturnclient.saturnclient.config.SaturnClientConfig;
|
import org.saturnclient.saturnclient.config.Config;
|
||||||
|
|
||||||
import net.minecraft.util.Formatting;
|
import net.minecraft.util.Formatting;
|
||||||
|
|
||||||
@@ -54,6 +54,6 @@ public class Roles {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static String getSaturnIndicator() {
|
public static String getSaturnIndicator() {
|
||||||
return SaturnClientConfig.realisticLogo.value ? "" : "";
|
return Config.realisticLogo.value ? "" : "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,55 @@
|
|||||||
|
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;
|
||||||
|
|
||||||
|
// Logo
|
||||||
|
public static final AnimationConfig logo = new AnimationConfig(true, 700, 0);
|
||||||
|
|
||||||
|
// Main menu
|
||||||
|
public static final AnimationConfig mainMenu = new AnimationConfig(true, 700, 120);
|
||||||
|
|
||||||
|
// Mod menu
|
||||||
|
public static final AnimationConfig modMenu = new AnimationConfig(true, 700, 30);
|
||||||
|
|
||||||
|
// Shift menu
|
||||||
|
public static final AnimationConfig shiftMenu = new AnimationConfig(true, 300, 120);
|
||||||
|
|
||||||
|
// Cosmetics menu
|
||||||
|
public static final AnimationConfig cosmeticsMenu = new AnimationConfig(true, 700, 40);
|
||||||
|
|
||||||
|
// Emote wheel
|
||||||
|
public static final AnimationConfig emoteWheel = new AnimationConfig(true, 700, 80);
|
||||||
|
|
||||||
|
public static void init(ConfigManager parent) {
|
||||||
|
config = new ConfigManager(parent, "Animations");
|
||||||
|
|
||||||
|
logo.init("Logo");
|
||||||
|
mainMenu.init("Main Menu");
|
||||||
|
modMenu.init("Mod Menu");
|
||||||
|
shiftMenu.init("Shift Menu");
|
||||||
|
cosmeticsMenu.init("Cosmetics Menu");
|
||||||
|
emoteWheel.init("Emote Wheel");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Animation properties
|
||||||
|
public final Property<Integer> duration;
|
||||||
|
public final Property<Integer> stagger;
|
||||||
|
public final Property<Integer> curve;
|
||||||
|
|
||||||
|
public AnimationConfig(boolean enabled, int delay, int stagger) {
|
||||||
|
this.duration = Property.integer(delay);
|
||||||
|
this.stagger = Property.integer(stagger);
|
||||||
|
this.curve = Property.select(1, "Ease In Out Cubic", "Ease Out Cubic", "Ease In Out Back");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void init(String name) {
|
||||||
|
// config.property("Enable " + name + " Animations", this.enabled);
|
||||||
|
config.property(name + " Duration", this.duration);
|
||||||
|
config.property(name + " Stagger", this.stagger);
|
||||||
|
config.property(name + " Curve", this.curve);
|
||||||
|
}
|
||||||
|
}
|
||||||
+6
-13
@@ -1,14 +1,13 @@
|
|||||||
package org.saturnclient.saturnclient.config;
|
package org.saturnclient.saturnclient.config;
|
||||||
|
|
||||||
import java.util.function.Function;
|
|
||||||
|
|
||||||
import org.lwjgl.glfw.GLFW;
|
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 org.saturnclient.ui2.resources.Textures;
|
||||||
|
|
||||||
import net.minecraft.util.Identifier;
|
import net.minecraft.util.Identifier;
|
||||||
|
|
||||||
public class SaturnClientConfig {
|
public class Config {
|
||||||
public static ConfigManager config;
|
public static ConfigManager config;
|
||||||
|
|
||||||
public static Property<Boolean> realisticLogo = Property.bool(false);
|
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<Boolean> bendyCloaks = Property.bool(true);
|
||||||
public static Property<Integer> openEmoteWheel = Property.keybinding(GLFW.GLFW_KEY_B);
|
public static Property<Integer> openEmoteWheel = Property.keybinding(GLFW.GLFW_KEY_B);
|
||||||
public static Property<Boolean> stagger = Property.bool(true);
|
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() {
|
public static Identifier getLogo() {
|
||||||
return realisticLogo.value ? Textures.REALISTIC_LOGO : Textures.LOGO;
|
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() {
|
public static void init() {
|
||||||
config = new ConfigManager("Saturn Client");
|
config = new ConfigManager("Saturn Client");
|
||||||
config.property("Realistic logo", realisticLogo);
|
config.property("Realistic logo", realisticLogo);
|
||||||
@@ -36,9 +27,11 @@ public class SaturnClientConfig {
|
|||||||
config.property("Open Emote Wheel", openEmoteWheel);
|
config.property("Open Emote Wheel", openEmoteWheel);
|
||||||
config.property("Bendy Cloaks", bendyCloaks);
|
config.property("Bendy Cloaks", bendyCloaks);
|
||||||
config.property("Stagger Animations", stagger);
|
config.property("Stagger Animations", stagger);
|
||||||
config.property("Animation Curve", animationCurve);
|
|
||||||
|
|
||||||
// Initialize a sub namespace for theme
|
// Initialize a sub namespace for theme
|
||||||
Theme.init(config);
|
Theme.init(config);
|
||||||
|
|
||||||
|
// Initialize a sub namespace for animations
|
||||||
|
AnimationConfig.init(config);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,8 @@
|
|||||||
package org.saturnclient.saturnclient.config;
|
package org.saturnclient.saturnclient.config;
|
||||||
|
|
||||||
|
import org.saturnclient.saturnclient.config.manager.ConfigManager;
|
||||||
|
import org.saturnclient.saturnclient.config.manager.Property;
|
||||||
|
|
||||||
public class Theme {
|
public class Theme {
|
||||||
// Main UI background (slightly warm dark to match Saturn tone)
|
// Main UI background (slightly warm dark to match Saturn tone)
|
||||||
public static final Property<Integer> BACKGROUND = Property.color(0xFF12100D);
|
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> BG_RADIUS = Property.integer(12);
|
||||||
public static final Property<Integer> WIDGET_RADIUS = Property.integer(10);
|
public static final Property<Integer> WIDGET_RADIUS = Property.integer(10);
|
||||||
|
|
||||||
// Font (keeping your current system)
|
// Font
|
||||||
public static Property<Integer> FONT = Property.font(1);
|
public static final Property<Integer> FONT = Property.font(1);
|
||||||
|
|
||||||
public static void init(ConfigManager parent) {
|
public static void init(ConfigManager parent) {
|
||||||
ConfigManager config = new ConfigManager(parent, "UI Style");
|
ConfigManager config = new ConfigManager(parent, "UI Style");
|
||||||
|
|||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package org.saturnclient.saturnclient.config;
|
package org.saturnclient.saturnclient.config.manager;
|
||||||
|
|
||||||
import com.google.gson.*;
|
import com.google.gson.*;
|
||||||
import org.saturnclient.saturnclient.SaturnClient;
|
import org.saturnclient.saturnclient.SaturnClient;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package org.saturnclient.saturnclient.config;
|
package org.saturnclient.saturnclient.config.manager;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
package org.saturnclient.saturnclient.cosmetics;
|
package org.saturnclient.saturnclient.cosmetics;
|
||||||
|
|
||||||
import org.saturnclient.saturnclient.client.player.SaturnPlayer;
|
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 org.saturnclient.saturnclient.cosmetics.cloaks.Cloaks;
|
||||||
|
|
||||||
import net.minecraft.client.render.OverlayTexture;
|
import net.minecraft.client.render.OverlayTexture;
|
||||||
@@ -339,7 +339,7 @@ public class CloakFeatureRenderer extends FeatureRenderer<PlayerEntityRenderStat
|
|||||||
rotation = 0.0f;
|
rotation = 0.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!SaturnClientConfig.bendyCloaks.value) {
|
if (!Config.bendyCloaks.value) {
|
||||||
curve = 0.0f;
|
curve = 0.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import net.minecraft.client.util.InputUtil;
|
|||||||
|
|
||||||
import org.saturnclient.saturnclient.SaturnClient;
|
import org.saturnclient.saturnclient.SaturnClient;
|
||||||
import org.saturnclient.saturnclient.client.ServiceClient;
|
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.EmoteWheel;
|
||||||
import org.saturnclient.ui2.screens.ShiftMenu;
|
import org.saturnclient.ui2.screens.ShiftMenu;
|
||||||
|
|
||||||
@@ -39,7 +39,7 @@ public class KeyInputHandler {
|
|||||||
client.setScreen(new ShiftMenu());
|
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());
|
client.setScreen(new EmoteWheel());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import org.saturnclient.modules.HudMod;
|
|||||||
import org.saturnclient.modules.ModDimensions;
|
import org.saturnclient.modules.ModDimensions;
|
||||||
import org.saturnclient.modules.ModManager;
|
import org.saturnclient.modules.ModManager;
|
||||||
import org.saturnclient.modules.Module;
|
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.saturnclient.mixin.DrawContextAccessor;
|
||||||
import org.saturnclient.ui2.RenderScope;
|
import org.saturnclient.ui2.RenderScope;
|
||||||
import org.saturnclient.ui2.SaturnScreen;
|
import org.saturnclient.ui2.SaturnScreen;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package org.saturnclient.saturnclient.mixin;
|
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.saturnclient.ui2.screens.TitleMenu;
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
import org.spongepowered.asm.mixin.injection.At;
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
@@ -14,7 +14,7 @@ import net.minecraft.client.gui.screen.TitleScreen;
|
|||||||
public class SetScreenMixin {
|
public class SetScreenMixin {
|
||||||
@ModifyVariable(method = "setScreen", at = @At("HEAD"), argsOnly = true)
|
@ModifyVariable(method = "setScreen", at = @At("HEAD"), argsOnly = true)
|
||||||
private Screen replaceTitleScreen(Screen screen) {
|
private Screen replaceTitleScreen(Screen screen) {
|
||||||
if (SaturnClientConfig.saturnTitleScreen.value) {
|
if (Config.saturnTitleScreen.value) {
|
||||||
if (screen instanceof TitleScreen)
|
if (screen instanceof TitleScreen)
|
||||||
return new TitleMenu();
|
return new TitleMenu();
|
||||||
if (screen == null && ((MinecraftClient) (Object) this).world == null)
|
if (screen == null && ((MinecraftClient) (Object) this).world == null)
|
||||||
|
|||||||
@@ -1,9 +1,6 @@
|
|||||||
package org.saturnclient.ui2;
|
package org.saturnclient.ui2;
|
||||||
|
|
||||||
import java.util.function.Function;
|
|
||||||
|
|
||||||
import org.saturnclient.ui2.anim.Animation;
|
import org.saturnclient.ui2.anim.Animation;
|
||||||
import org.saturnclient.ui2.anim.Curve;
|
|
||||||
|
|
||||||
public class Element {
|
public class Element {
|
||||||
public int x;
|
public int x;
|
||||||
@@ -14,7 +11,6 @@ public class Element {
|
|||||||
public boolean focused;
|
public boolean focused;
|
||||||
public Animation animation;
|
public Animation animation;
|
||||||
public float scale = 1.0f;
|
public float scale = 1.0f;
|
||||||
public Function<Double, Double> curve = Curve::easeInOutCubic;
|
|
||||||
public Integer duration = null; // Element duration, will fade out if not null
|
public Integer duration = null; // Element duration, will fade out if not null
|
||||||
|
|
||||||
public void render(RenderScope renderScope, ElementContext ctx) {
|
public void render(RenderScope renderScope, ElementContext ctx) {
|
||||||
@@ -43,7 +39,7 @@ public class Element {
|
|||||||
|
|
||||||
public void playAnimationFrame(long elapsed) {
|
public void playAnimationFrame(long elapsed) {
|
||||||
if (this.animation != null && elapsed >= this.animation.delay) {
|
if (this.animation != null && elapsed >= this.animation.delay) {
|
||||||
this.animation.tick(this.curve
|
this.animation.tick(this.animation.curve
|
||||||
.apply(Math.min(1.0, (double) (elapsed - this.animation.delay) / this.animation.duration)), this);
|
.apply(Math.min(1.0, (double) (elapsed - this.animation.delay) / this.animation.duration)), this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -86,12 +82,6 @@ public class Element {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Element animation(Animation animation, Function<Double, Double> curve) {
|
|
||||||
this.animation = animation;
|
|
||||||
this.curve = curve;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Element scale(float scale) {
|
public Element scale(float scale) {
|
||||||
this.scale = scale;
|
this.scale = scale;
|
||||||
return this;
|
return this;
|
||||||
|
|||||||
@@ -1,10 +1,31 @@
|
|||||||
package org.saturnclient.ui2.anim;
|
package org.saturnclient.ui2.anim;
|
||||||
|
|
||||||
|
import java.util.function.Function;
|
||||||
|
|
||||||
|
import org.saturnclient.saturnclient.config.AnimationConfig;
|
||||||
import org.saturnclient.ui2.Element;
|
import org.saturnclient.ui2.Element;
|
||||||
|
|
||||||
public abstract class Animation {
|
public abstract class Animation {
|
||||||
public int duration;
|
public int duration;
|
||||||
public int delay = 0;
|
public int delay = 0;
|
||||||
|
public Function<Double, Double> curve = Curve::easeInOutCubic;
|
||||||
|
|
||||||
|
Animation(AnimationConfig config) {
|
||||||
|
this.duration = config.duration.value;
|
||||||
|
switch (config.curve.value) {
|
||||||
|
case 0:
|
||||||
|
this.curve = Curve::easeInOutCubic;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
this.curve = Curve::easeOutCubic;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
this.curve = Curve::easeInOutBack;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Animation(int duration) {
|
Animation(int duration) {
|
||||||
this.duration = duration;
|
this.duration = duration;
|
||||||
|
|||||||
@@ -9,12 +9,8 @@ public class Curve {
|
|||||||
return (x < 0.5 ? 4 * x * x * x : 1 - Math.pow(-2 * x + 2, 3) / 2);
|
return (x < 0.5 ? 4 * x * x * x : 1 - Math.pow(-2 * x + 2, 3) / 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static double easeInOutCubicReverse(double x) {
|
|
||||||
return -(x < 0.5 ? 4 * x * x * x : 1 - Math.pow(-2 * x + 2, 3) / 2);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static double easeInOutBack(double x) {
|
public static double easeInOutBack(double x) {
|
||||||
double c1 = 1.70158;
|
double c1 = 2.5;
|
||||||
double c2 = c1 * 1.525;
|
double c2 = c1 * 1.525;
|
||||||
|
|
||||||
if (x < 0.5) {
|
if (x < 0.5) {
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package org.saturnclient.ui2.anim;
|
package org.saturnclient.ui2.anim;
|
||||||
|
|
||||||
|
import org.saturnclient.saturnclient.config.AnimationConfig;
|
||||||
import org.saturnclient.ui2.Element;
|
import org.saturnclient.ui2.Element;
|
||||||
|
|
||||||
public class Fade extends Animation {
|
public class Fade extends Animation {
|
||||||
@@ -9,6 +10,10 @@ public class Fade extends Animation {
|
|||||||
super(duration);
|
super(duration);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Fade(AnimationConfig config) {
|
||||||
|
super(config);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void tick(double progress, Element element) {
|
public void tick(double progress, Element element) {
|
||||||
element.opacity = Math.max(0.1f, targetOpacity * (float) progress);
|
element.opacity = Math.max(0.1f, targetOpacity * (float) progress);
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package org.saturnclient.ui2.anim;
|
package org.saturnclient.ui2.anim;
|
||||||
|
|
||||||
|
import org.saturnclient.saturnclient.config.AnimationConfig;
|
||||||
import org.saturnclient.ui2.Element;
|
import org.saturnclient.ui2.Element;
|
||||||
|
|
||||||
public class FadeOut extends Animation {
|
public class FadeOut extends Animation {
|
||||||
@@ -9,6 +10,10 @@ public class FadeOut extends Animation {
|
|||||||
super(duration);
|
super(duration);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public FadeOut(AnimationConfig config) {
|
||||||
|
super(config);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void tick(double progress, Element element) {
|
public void tick(double progress, Element element) {
|
||||||
element.opacity = targetOpacity - (float) progress;
|
element.opacity = targetOpacity - (float) progress;
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package org.saturnclient.ui2.anim;
|
package org.saturnclient.ui2.anim;
|
||||||
|
|
||||||
|
import org.saturnclient.saturnclient.config.AnimationConfig;
|
||||||
import org.saturnclient.ui2.Element;
|
import org.saturnclient.ui2.Element;
|
||||||
|
|
||||||
public class SlideFade extends Animation {
|
public class SlideFade extends Animation {
|
||||||
@@ -12,6 +13,12 @@ public class SlideFade extends Animation {
|
|||||||
this.slideY = new SlideY(duration, offset);
|
this.slideY = new SlideY(duration, offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public SlideFade(AnimationConfig config, int offset) {
|
||||||
|
super(config);
|
||||||
|
this.fade = new Fade(duration);
|
||||||
|
this.slideY = new SlideY(duration, offset);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void tick(double progress, Element element) {
|
public void tick(double progress, Element element) {
|
||||||
fade.delay = this.delay;
|
fade.delay = this.delay;
|
||||||
|
|||||||
@@ -1,11 +1,20 @@
|
|||||||
package org.saturnclient.ui2.anim;
|
package org.saturnclient.ui2.anim;
|
||||||
|
|
||||||
|
import org.saturnclient.saturnclient.config.AnimationConfig;
|
||||||
import org.saturnclient.ui2.Element;
|
import org.saturnclient.ui2.Element;
|
||||||
|
|
||||||
public class SlideX extends Animation {
|
public class SlideX extends Animation {
|
||||||
int offset = 20;
|
int offset = 20;
|
||||||
int maxOffset = 20;
|
double startX;
|
||||||
int elementX;
|
|
||||||
|
public SlideX(AnimationConfig config) {
|
||||||
|
super(config);
|
||||||
|
}
|
||||||
|
|
||||||
|
public SlideX(AnimationConfig config, int offset) {
|
||||||
|
super(config);
|
||||||
|
this.offset = offset;
|
||||||
|
}
|
||||||
|
|
||||||
public SlideX(int duration) {
|
public SlideX(int duration) {
|
||||||
super(duration);
|
super(duration);
|
||||||
@@ -14,23 +23,17 @@ public class SlideX extends Animation {
|
|||||||
public SlideX(int duration, int offset) {
|
public SlideX(int duration, int offset) {
|
||||||
super(duration);
|
super(duration);
|
||||||
this.offset = offset;
|
this.offset = offset;
|
||||||
this.maxOffset = offset;
|
|
||||||
}
|
|
||||||
|
|
||||||
public SlideX(int duration, int offset, int maxOffset) {
|
|
||||||
super(duration);
|
|
||||||
this.offset = offset;
|
|
||||||
this.maxOffset = maxOffset; // ✅ fixed
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void tick(double progress, Element element) {
|
|
||||||
element.x = elementX + (int) (offset * progress);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void init(Element element) {
|
public void init(Element element) {
|
||||||
element.x -= offset;
|
startX = element.x - offset;
|
||||||
elementX = element.x;
|
element.x = (int) startX;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void tick(double progress, Element element) {
|
||||||
|
double currentX = startX + offset * progress;
|
||||||
|
element.x = (int) currentX;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,35 +0,0 @@
|
|||||||
package org.saturnclient.ui2.anim;
|
|
||||||
|
|
||||||
import org.saturnclient.ui2.Element;
|
|
||||||
|
|
||||||
public class SlideXAbsolute extends Animation {
|
|
||||||
int offset = 20;
|
|
||||||
int maxOffset = 20;
|
|
||||||
int elementX;
|
|
||||||
|
|
||||||
public SlideXAbsolute(int duration) {
|
|
||||||
super(duration);
|
|
||||||
}
|
|
||||||
|
|
||||||
public SlideXAbsolute(int duration, int offset) {
|
|
||||||
super(duration);
|
|
||||||
this.offset = offset;
|
|
||||||
this.maxOffset = offset;
|
|
||||||
}
|
|
||||||
|
|
||||||
public SlideXAbsolute(int duration, int offset, int maxOffset) {
|
|
||||||
super(duration);
|
|
||||||
this.offset = offset;
|
|
||||||
this.maxOffset = maxOffset;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void tick(double progress, Element element) {
|
|
||||||
element.x = elementX + (int) (offset * progress);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void init(Element element) {
|
|
||||||
elementX = element.x;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,28 +1,28 @@
|
|||||||
package org.saturnclient.ui2.anim;
|
package org.saturnclient.ui2.anim;
|
||||||
|
|
||||||
|
import org.saturnclient.saturnclient.config.AnimationConfig;
|
||||||
import org.saturnclient.ui2.Element;
|
import org.saturnclient.ui2.Element;
|
||||||
|
|
||||||
public class SlideY extends Animation {
|
public class SlideY extends Animation {
|
||||||
int offset = 20;
|
int offset = 20;
|
||||||
int maxOffset = 20;
|
|
||||||
double startY;
|
double startY;
|
||||||
|
|
||||||
|
public SlideY(AnimationConfig config) {
|
||||||
|
super(config);
|
||||||
|
}
|
||||||
|
|
||||||
|
public SlideY(AnimationConfig config, int offset) {
|
||||||
|
super(config);
|
||||||
|
this.offset = offset;
|
||||||
|
}
|
||||||
|
|
||||||
public SlideY(int duration) {
|
public SlideY(int duration) {
|
||||||
super(duration);
|
super(duration);
|
||||||
}
|
}
|
||||||
|
|
||||||
public SlideY(int duration, int offset) {
|
public SlideY(int duration, int offset) {
|
||||||
super(duration);
|
super(duration);
|
||||||
|
|
||||||
this.offset = offset;
|
this.offset = offset;
|
||||||
this.maxOffset = offset;
|
|
||||||
}
|
|
||||||
|
|
||||||
public SlideY(int duration, int offset, int maxOffset) {
|
|
||||||
super(duration);
|
|
||||||
|
|
||||||
this.offset = offset;
|
|
||||||
this.maxOffset = offset;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package org.saturnclient.ui2.components;
|
package org.saturnclient.ui2.components;
|
||||||
|
|
||||||
import org.saturnclient.saturnclient.SaturnClient;
|
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.saturnclient.config.Theme;
|
||||||
import org.saturnclient.ui2.resources.Textures;
|
import org.saturnclient.ui2.resources.Textures;
|
||||||
import org.saturnclient.ui2.Element;
|
import org.saturnclient.ui2.Element;
|
||||||
@@ -35,7 +35,7 @@ public class Sidebar extends Element {
|
|||||||
SaturnClient.client.setScreen(new ModMenu());
|
SaturnClient.client.setScreen(new ModMenu());
|
||||||
}, false),
|
}, false),
|
||||||
new Sidebar.SidebarComponent(Textures.SETTINGS, () -> {
|
new Sidebar.SidebarComponent(Textures.SETTINGS, () -> {
|
||||||
SaturnClient.client.setScreen(new ConfigEditor(SaturnClientConfig.config));
|
SaturnClient.client.setScreen(new ConfigEditor(Config.config));
|
||||||
}, false),
|
}, false),
|
||||||
|
|
||||||
new Sidebar.SidebarComponent(Textures.SHIRT, () -> {
|
new Sidebar.SidebarComponent(Textures.SHIRT, () -> {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package org.saturnclient.ui2.components.inputs;
|
package org.saturnclient.ui2.components.inputs;
|
||||||
|
|
||||||
import org.saturnclient.saturnclient.config.ConfigManager;
|
import org.saturnclient.saturnclient.config.manager.ConfigManager;
|
||||||
import org.saturnclient.saturnclient.config.Property;
|
import org.saturnclient.saturnclient.config.manager.Property;
|
||||||
import org.saturnclient.ui2.resources.Fonts;
|
import org.saturnclient.ui2.resources.Fonts;
|
||||||
|
|
||||||
public class FloatInput extends Input {
|
public class FloatInput extends Input {
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ package org.saturnclient.ui2.components.inputs;
|
|||||||
|
|
||||||
import java.awt.Color;
|
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.Element;
|
||||||
import org.saturnclient.ui2.ElementContext;
|
import org.saturnclient.ui2.ElementContext;
|
||||||
import org.saturnclient.ui2.RenderScope;
|
import org.saturnclient.ui2.RenderScope;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package org.saturnclient.ui2.components.inputs;
|
package org.saturnclient.ui2.components.inputs;
|
||||||
|
|
||||||
import org.saturnclient.saturnclient.config.ConfigManager;
|
import org.saturnclient.saturnclient.config.manager.ConfigManager;
|
||||||
import org.saturnclient.saturnclient.config.Property;
|
import org.saturnclient.saturnclient.config.manager.Property;
|
||||||
import org.saturnclient.ui2.resources.Fonts;
|
import org.saturnclient.ui2.resources.Fonts;
|
||||||
|
|
||||||
public class IntInput extends Input {
|
public class IntInput extends Input {
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
package org.saturnclient.ui2.components.inputs;
|
package org.saturnclient.ui2.components.inputs;
|
||||||
|
|
||||||
import org.lwjgl.glfw.GLFW;
|
import org.lwjgl.glfw.GLFW;
|
||||||
import org.saturnclient.saturnclient.config.Property;
|
|
||||||
import org.saturnclient.saturnclient.config.Theme;
|
import org.saturnclient.saturnclient.config.Theme;
|
||||||
|
import org.saturnclient.saturnclient.config.manager.Property;
|
||||||
import org.saturnclient.ui2.Element;
|
import org.saturnclient.ui2.Element;
|
||||||
import org.saturnclient.ui2.ElementContext;
|
import org.saturnclient.ui2.ElementContext;
|
||||||
import org.saturnclient.ui2.RenderScope;
|
import org.saturnclient.ui2.RenderScope;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package org.saturnclient.ui2.components.inputs;
|
package org.saturnclient.ui2.components.inputs;
|
||||||
|
|
||||||
import org.saturnclient.saturnclient.config.Property;
|
|
||||||
import org.saturnclient.saturnclient.config.Theme;
|
import org.saturnclient.saturnclient.config.Theme;
|
||||||
|
import org.saturnclient.saturnclient.config.manager.Property;
|
||||||
import org.saturnclient.ui2.Element;
|
import org.saturnclient.ui2.Element;
|
||||||
import org.saturnclient.ui2.ElementContext;
|
import org.saturnclient.ui2.ElementContext;
|
||||||
import org.saturnclient.ui2.RenderScope;
|
import org.saturnclient.ui2.RenderScope;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package org.saturnclient.ui2.components.inputs;
|
package org.saturnclient.ui2.components.inputs;
|
||||||
|
|
||||||
import org.saturnclient.saturnclient.config.Property;
|
|
||||||
import org.saturnclient.saturnclient.config.Theme;
|
import org.saturnclient.saturnclient.config.Theme;
|
||||||
|
import org.saturnclient.saturnclient.config.manager.Property;
|
||||||
import org.saturnclient.ui2.Element;
|
import org.saturnclient.ui2.Element;
|
||||||
import org.saturnclient.ui2.ElementContext;
|
import org.saturnclient.ui2.ElementContext;
|
||||||
import org.saturnclient.ui2.RenderScope;
|
import org.saturnclient.ui2.RenderScope;
|
||||||
|
|||||||
@@ -3,7 +3,8 @@ package org.saturnclient.ui2.elements;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.saturnclient.saturnclient.config.SaturnClientConfig;
|
import org.saturnclient.saturnclient.config.AnimationConfig;
|
||||||
|
import org.saturnclient.saturnclient.config.Config;
|
||||||
import org.saturnclient.ui2.Element;
|
import org.saturnclient.ui2.Element;
|
||||||
import org.saturnclient.ui2.ElementContext;
|
import org.saturnclient.ui2.ElementContext;
|
||||||
import org.saturnclient.ui2.RenderScope;
|
import org.saturnclient.ui2.RenderScope;
|
||||||
@@ -17,8 +18,12 @@ public class AnimationStagger extends Element {
|
|||||||
this.delay = delay;
|
this.delay = delay;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public AnimationStagger(AnimationConfig config) {
|
||||||
|
this.delay = config.stagger.value;
|
||||||
|
}
|
||||||
|
|
||||||
public void draw(Element element) {
|
public void draw(Element element) {
|
||||||
if (!SaturnClientConfig.stagger.value) {
|
if (!Config.stagger.value) {
|
||||||
element.animation = null;
|
element.animation = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -29,10 +34,9 @@ public class AnimationStagger extends Element {
|
|||||||
ElementRenderer.draw(children, element);
|
ElementRenderer.draw(children, element);
|
||||||
|
|
||||||
this.height = Math.max(this.height, element.y + element.height);
|
this.height = Math.max(this.height, element.y + element.height);
|
||||||
this.width = Math.max(this.width, element.x + element.width);
|
this.width = Math.max(this.width, element.x + element.width);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void render(RenderScope renderScope, ElementContext ctx) {
|
public void render(RenderScope renderScope, ElementContext ctx) {
|
||||||
ElementRenderer.render(children, ctx.elapsed, renderScope,
|
ElementRenderer.render(children, ctx.elapsed, renderScope,
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package org.saturnclient.ui2.elements;
|
package org.saturnclient.ui2.elements;
|
||||||
|
|
||||||
import org.saturnclient.saturnclient.config.Property;
|
|
||||||
import org.saturnclient.saturnclient.config.Theme;
|
import org.saturnclient.saturnclient.config.Theme;
|
||||||
|
import org.saturnclient.saturnclient.config.manager.Property;
|
||||||
import org.saturnclient.ui2.Element;
|
import org.saturnclient.ui2.Element;
|
||||||
import org.saturnclient.ui2.ElementContext;
|
import org.saturnclient.ui2.ElementContext;
|
||||||
import org.saturnclient.ui2.RenderScope;
|
import org.saturnclient.ui2.RenderScope;
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ package org.saturnclient.ui2.elements;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.saturnclient.saturnclient.config.Property;
|
|
||||||
import org.saturnclient.saturnclient.config.Theme;
|
import org.saturnclient.saturnclient.config.Theme;
|
||||||
|
import org.saturnclient.saturnclient.config.manager.Property;
|
||||||
import org.saturnclient.ui2.Element;
|
import org.saturnclient.ui2.Element;
|
||||||
import org.saturnclient.ui2.ElementContext;
|
import org.saturnclient.ui2.ElementContext;
|
||||||
import org.saturnclient.ui2.RenderScope;
|
import org.saturnclient.ui2.RenderScope;
|
||||||
|
|||||||
@@ -2,9 +2,9 @@ package org.saturnclient.ui2.screens;
|
|||||||
|
|
||||||
import java.util.Map;
|
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.Theme;
|
||||||
|
import org.saturnclient.saturnclient.config.manager.ConfigManager;
|
||||||
|
import org.saturnclient.saturnclient.config.manager.Property;
|
||||||
import org.saturnclient.ui2.SaturnScreen;
|
import org.saturnclient.ui2.SaturnScreen;
|
||||||
import org.saturnclient.ui2.components.Sidebar;
|
import org.saturnclient.ui2.components.Sidebar;
|
||||||
import org.saturnclient.ui2.components.inputs.FloatInput;
|
import org.saturnclient.ui2.components.inputs.FloatInput;
|
||||||
|
|||||||
@@ -2,12 +2,14 @@ package org.saturnclient.ui2.screens;
|
|||||||
|
|
||||||
import org.saturnclient.saturnclient.SaturnClient;
|
import org.saturnclient.saturnclient.SaturnClient;
|
||||||
import org.saturnclient.saturnclient.client.ServiceClient;
|
import org.saturnclient.saturnclient.client.ServiceClient;
|
||||||
import org.saturnclient.saturnclient.config.SaturnClientConfig;
|
import org.saturnclient.saturnclient.config.AnimationConfig;
|
||||||
|
import org.saturnclient.saturnclient.config.Config;
|
||||||
import org.saturnclient.saturnclient.cosmetics.Emotes;
|
import org.saturnclient.saturnclient.cosmetics.Emotes;
|
||||||
import org.saturnclient.ui2.SaturnScreen;
|
import org.saturnclient.ui2.SaturnScreen;
|
||||||
import org.saturnclient.ui2.Utils;
|
import org.saturnclient.ui2.Utils;
|
||||||
import org.saturnclient.ui2.anim.Fade;
|
import org.saturnclient.ui2.anim.Fade;
|
||||||
import org.saturnclient.ui2.anim.SlideY;
|
import org.saturnclient.ui2.anim.SlideY;
|
||||||
|
import org.saturnclient.ui2.elements.AnimationStagger;
|
||||||
import org.saturnclient.ui2.elements.ImageTexture;
|
import org.saturnclient.ui2.elements.ImageTexture;
|
||||||
import org.saturnclient.ui2.elements.TextureButton;
|
import org.saturnclient.ui2.elements.TextureButton;
|
||||||
import org.saturnclient.ui2.resources.Textures;
|
import org.saturnclient.ui2.resources.Textures;
|
||||||
@@ -29,10 +31,23 @@ public class EmoteWheel extends SaturnScreen {
|
|||||||
int row = 0;
|
int row = 0;
|
||||||
int col = 0;
|
int col = 0;
|
||||||
|
|
||||||
draw(new ImageTexture(Textures.LOGO_TEXT).dimensions(98, 10).centerOffset(width, height, 0, -105)
|
// =============================
|
||||||
.animation(new Fade(700)));
|
// Logo
|
||||||
draw(new ImageTexture(SaturnClientConfig.getLogo()).dimensions(98, 98).centerOffset(width, height, 0, -149)
|
// =============================
|
||||||
.animation(new SlideY(700, -20)));
|
|
||||||
|
draw(new ImageTexture(Textures.LOGO_TEXT)
|
||||||
|
.dimensions(98, 10)
|
||||||
|
.centerOffset(width, height, 0, -105)
|
||||||
|
.animation(new Fade(AnimationConfig.logo.duration.value)));
|
||||||
|
|
||||||
|
draw(new ImageTexture(Config.getLogo())
|
||||||
|
.dimensions(98, 98)
|
||||||
|
.centerOffset(width, height, 0, -149)
|
||||||
|
.animation(new SlideY(AnimationConfig.logo, -20)));
|
||||||
|
|
||||||
|
// =============================
|
||||||
|
// Navigation Buttons
|
||||||
|
// =============================
|
||||||
|
|
||||||
draw(new TextureButton(Textures.LEFT, () -> {
|
draw(new TextureButton(Textures.LEFT, () -> {
|
||||||
if (page > 1) {
|
if (page > 1) {
|
||||||
@@ -40,18 +55,29 @@ public class EmoteWheel extends SaturnScreen {
|
|||||||
elements.clear();
|
elements.clear();
|
||||||
ui();
|
ui();
|
||||||
}
|
}
|
||||||
}).dimensions(30, 30).centerOffset(width, height, -20, 45).animation(new Fade(700)));
|
}).dimensions(30, 30)
|
||||||
|
.centerOffset(width, height, -50, 105)
|
||||||
|
.animation(new Fade(500)));
|
||||||
|
|
||||||
draw(new TextureButton(Textures.RIGHT, () -> {
|
draw(new TextureButton(Textures.RIGHT, () -> {
|
||||||
if ((8 * page) < Emotes.availableEmotes.size()) {
|
if ((page * 8) < Emotes.availableEmotes.size()) {
|
||||||
page++;
|
page++;
|
||||||
elements.clear();
|
elements.clear();
|
||||||
ui();
|
ui();
|
||||||
}
|
}
|
||||||
}).dimensions(30, 30).centerOffset(width, height, 20, 45).animation(new Fade(700)));
|
}).dimensions(30, 30)
|
||||||
|
.centerOffset(width, height, 50, 105)
|
||||||
|
.animation(new Fade(500)));
|
||||||
|
|
||||||
|
// =============================
|
||||||
|
// Emote Grid (Staggered)
|
||||||
|
// =============================
|
||||||
|
|
||||||
|
AnimationStagger emoteStagger = new AnimationStagger(AnimationConfig.emoteWheel);
|
||||||
|
|
||||||
while (row < 3) {
|
while (row < 3) {
|
||||||
int idx = (row * 3 + col) * page;
|
|
||||||
|
int idx = (row * 3 + col) + ((page - 1) * 8);
|
||||||
|
|
||||||
if (row == 1 && col == 1) {
|
if (row == 1 && col == 1) {
|
||||||
col++;
|
col++;
|
||||||
@@ -59,21 +85,35 @@ public class EmoteWheel extends SaturnScreen {
|
|||||||
|
|
||||||
String emote = Utils.getOrNull(Emotes.availableEmotes, idx);
|
String emote = Utils.getOrNull(Emotes.availableEmotes, idx);
|
||||||
|
|
||||||
draw(new TextureButton(Textures.getEmotePreview(emote), () -> {
|
emoteStagger.draw(
|
||||||
if (emote == null) {
|
new TextureButton(Textures.getEmotePreview(emote), () -> {
|
||||||
return;
|
|
||||||
}
|
if (emote == null)
|
||||||
AnimationStack animationStack = PlayerAnimationAccess.getPlayerAnimLayer(SaturnClient.client.player);
|
return;
|
||||||
if (animationStack.isActive() && animationStack.getPriority() == 1000) {
|
|
||||||
animationStack.removeLayer(1000);
|
AnimationStack animationStack = PlayerAnimationAccess.getPlayerAnimLayer(
|
||||||
}
|
SaturnClient.client.player);
|
||||||
animationStack.addAnimLayer(1000,
|
|
||||||
PlayerAnimationRegistry.getAnimation(Identifier.of("saturnclient",
|
if (animationStack.isActive()
|
||||||
emote)).playAnimation());
|
&& animationStack.getPriority() == 1000) {
|
||||||
ServiceClient.emote(emote);
|
animationStack.removeLayer(1000);
|
||||||
close();
|
}
|
||||||
}).dimensions(70, 70).centerOffset(width, height, -80 + (col * 80), -35 + (row * 80))
|
|
||||||
.animation(new Fade(700)));
|
animationStack.addAnimLayer(
|
||||||
|
1000,
|
||||||
|
PlayerAnimationRegistry
|
||||||
|
.getAnimation(
|
||||||
|
Identifier.of("saturnclient", emote))
|
||||||
|
.playAnimation());
|
||||||
|
|
||||||
|
ServiceClient.emote(emote);
|
||||||
|
close();
|
||||||
|
})
|
||||||
|
.dimensions(70, 70)
|
||||||
|
.centerOffset(width, height,
|
||||||
|
-80 + (col * 80),
|
||||||
|
-35 + (row * 80))
|
||||||
|
.animation(new SlideY(AnimationConfig.emoteWheel, 12)));
|
||||||
|
|
||||||
if (col < 2) {
|
if (col < 2) {
|
||||||
col++;
|
col++;
|
||||||
@@ -82,6 +122,8 @@ public class EmoteWheel extends SaturnScreen {
|
|||||||
row++;
|
row++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
draw(emoteStagger);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ package org.saturnclient.ui2.screens;
|
|||||||
|
|
||||||
import org.saturnclient.modules.ModManager;
|
import org.saturnclient.modules.ModManager;
|
||||||
import org.saturnclient.modules.Module;
|
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.SaturnScreen;
|
||||||
import org.saturnclient.ui2.anim.SlideFade;
|
import org.saturnclient.ui2.anim.SlideFade;
|
||||||
import org.saturnclient.ui2.components.SaturnModule;
|
import org.saturnclient.ui2.components.SaturnModule;
|
||||||
@@ -27,13 +27,13 @@ public class ModMenu extends SaturnScreen {
|
|||||||
int row = 0;
|
int row = 0;
|
||||||
int col = 0;
|
int col = 0;
|
||||||
|
|
||||||
AnimationStagger moduleStagger = new AnimationStagger(20);
|
AnimationStagger moduleStagger = new AnimationStagger(AnimationConfig.modMenu);
|
||||||
|
|
||||||
for (Module mod : ModManager.ALL_MODS) {
|
for (Module mod : ModManager.ALL_MODS) {
|
||||||
moduleStagger.draw(
|
moduleStagger.draw(
|
||||||
new SaturnModule(mod)
|
new SaturnModule(mod)
|
||||||
.position((160 + g) * col, (50 + g) * row)
|
.position((160 + g) * col, (50 + g) * row)
|
||||||
.animation(new SlideFade(600, -12), SaturnClientConfig.getAnimationCurve()));
|
.animation(new SlideFade(AnimationConfig.modMenu, -12)));
|
||||||
|
|
||||||
if (col == 2) {
|
if (col == 2) {
|
||||||
col = 0;
|
col = 0;
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
package org.saturnclient.ui2.screens;
|
package org.saturnclient.ui2.screens;
|
||||||
|
|
||||||
import org.saturnclient.saturnclient.SaturnClient;
|
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.saturnclient.menus.HudEditor;
|
||||||
import org.saturnclient.ui2.resources.Textures;
|
import org.saturnclient.ui2.resources.Textures;
|
||||||
import org.saturnclient.ui2.screens.cosmetics.CloakMenu;
|
import org.saturnclient.ui2.screens.cosmetics.CloakMenu;
|
||||||
@@ -24,12 +25,12 @@ public class ShiftMenu extends SaturnScreen {
|
|||||||
draw(new ImageTexture(Textures.LOGO_TEXT)
|
draw(new ImageTexture(Textures.LOGO_TEXT)
|
||||||
.dimensions(98, 10)
|
.dimensions(98, 10)
|
||||||
.centerOffset(width, height, 0, -36)
|
.centerOffset(width, height, 0, -36)
|
||||||
.animation(new Fade(700)));
|
.animation(new Fade(AnimationConfig.logo.duration.value)));
|
||||||
|
|
||||||
draw(new ImageTexture(SaturnClientConfig.getLogo())
|
draw(new ImageTexture(Config.getLogo())
|
||||||
.dimensions(98, 98)
|
.dimensions(98, 98)
|
||||||
.centerOffset(width, height, 0, -80)
|
.centerOffset(width, height, 0, -80)
|
||||||
.animation(new SlideY(700, -20)));
|
.animation(new SlideY(AnimationConfig.logo, -20)));
|
||||||
|
|
||||||
// Spacing and sizes
|
// Spacing and sizes
|
||||||
int btnWidth = 120;
|
int btnWidth = 120;
|
||||||
@@ -37,22 +38,23 @@ public class ShiftMenu extends SaturnScreen {
|
|||||||
int spacing = 4;
|
int spacing = 4;
|
||||||
|
|
||||||
// Create stagger
|
// Create stagger
|
||||||
AnimationStagger stagger = new AnimationStagger(50);
|
|
||||||
|
AnimationStagger stagger = new AnimationStagger(AnimationConfig.shiftMenu.stagger.value);
|
||||||
|
|
||||||
stagger.draw(new TextureButton(Textures.HUD_ICON, () -> {
|
stagger.draw(new TextureButton(Textures.HUD_ICON, () -> {
|
||||||
client.setScreen(new HudEditor());
|
client.setScreen(new HudEditor());
|
||||||
}).dimensions(btnHeight, btnHeight).position(0, 0)
|
}).dimensions(btnHeight, btnHeight).position(0, 0)
|
||||||
.animation(new Fade(300)));
|
.animation(new Fade(AnimationConfig.shiftMenu)));
|
||||||
|
|
||||||
stagger.draw(new Button("Settings", () -> {
|
stagger.draw(new Button("Settings", () -> {
|
||||||
SaturnClient.client.setScreen(new ModMenu());
|
SaturnClient.client.setScreen(new ModMenu());
|
||||||
}).dimensions(btnWidth, btnHeight).position(btnHeight + spacing, 0)
|
}).dimensions(btnWidth, btnHeight).position(btnHeight + spacing, 0)
|
||||||
.animation(new Fade(300)));
|
.animation(new Fade(AnimationConfig.shiftMenu)));
|
||||||
|
|
||||||
stagger.draw(new TextureButton(Textures.COSMETICS, () -> {
|
stagger.draw(new TextureButton(Textures.COSMETICS, () -> {
|
||||||
client.setScreen(new CloakMenu());
|
client.setScreen(new CloakMenu());
|
||||||
}).dimensions(btnHeight, btnHeight).position(btnWidth + btnHeight + (spacing * 2), 0)
|
}).dimensions(btnHeight, btnHeight).position(btnWidth + btnHeight + (spacing * 2), 0)
|
||||||
.animation(new Fade(300)));
|
.animation(new Fade(AnimationConfig.shiftMenu)));
|
||||||
|
|
||||||
// Draw the stagger at the absolute center of the screen
|
// Draw the stagger at the absolute center of the screen
|
||||||
draw(stagger.dimensions(btnWidth + (btnHeight * 2) + (spacing * 2), btnHeight).centerOffset(width, height, 0,
|
draw(stagger.dimensions(btnWidth + (btnHeight * 2) + (spacing * 2), btnHeight).centerOffset(width, height, 0,
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
package org.saturnclient.ui2.screens;
|
package org.saturnclient.ui2.screens;
|
||||||
|
|
||||||
import org.saturnclient.saturnclient.SaturnClient;
|
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.saturnclient.menus.HudEditor;
|
||||||
import org.saturnclient.ui2.resources.Textures;
|
import org.saturnclient.ui2.resources.Textures;
|
||||||
import org.saturnclient.ui2.screens.cosmetics.CloakMenu;
|
import org.saturnclient.ui2.screens.cosmetics.CloakMenu;
|
||||||
@@ -28,46 +29,52 @@ public class TitleMenu extends SaturnScreen {
|
|||||||
public void ui() {
|
public void ui() {
|
||||||
backgroundBlur = 0;
|
backgroundBlur = 0;
|
||||||
|
|
||||||
draw(new ImageTexture(Textures.LOGO_TEXT).dimensions(98, 10).centerOffset(width, height, 0, -36)
|
draw(new ImageTexture(Textures.LOGO_TEXT).dimensions(98, 10).centerOffset(width, height, 0, -105)
|
||||||
.animation(new Fade(700)));
|
.animation(new Fade(AnimationConfig.logo.duration.value)));
|
||||||
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, -149)
|
||||||
.animation(new SlideY(700, -20)));
|
.animation(new SlideY(AnimationConfig.logo, -20)));
|
||||||
|
|
||||||
AnimationStagger mainButtonStagger = new AnimationStagger(120);
|
AnimationStagger mainButtonStagger = new AnimationStagger(AnimationConfig.mainMenu);
|
||||||
|
|
||||||
mainButtonStagger.draw(new Button("SINGLEPLAYER", () -> {
|
mainButtonStagger.draw(new Button("SINGLEPLAYER", () -> {
|
||||||
client.setScreen(new SelectWorldScreen(new TitleMenu()));
|
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, -10)));
|
||||||
|
|
||||||
mainButtonStagger.draw(new Button("MULTIPLAYER", () -> {
|
mainButtonStagger.draw(new Button("MULTIPLAYER", () -> {
|
||||||
client.setScreen(new MultiplayerScreen(new TitleMenu()));
|
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, -10)));
|
||||||
|
|
||||||
mainButtonStagger.draw(new Button("OPTIONS", () -> {
|
mainButtonStagger.draw(new Button("OPTIONS", () -> {
|
||||||
client.setScreen(new OptionsScreen(new TitleMenu(), SaturnClient.client.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, -10)));
|
||||||
|
|
||||||
mainButtonStagger.draw(new Button("QUIT", () -> {
|
mainButtonStagger.draw(new Button("QUIT", () -> {
|
||||||
client.scheduleStop();
|
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, -10)));
|
||||||
|
|
||||||
draw(mainButtonStagger.dimensions(289, 143).centerOffset(width, height, 0, 60));
|
draw(mainButtonStagger.dimensions(289, 143).centerOffset(width, height, 0, 60));
|
||||||
|
|
||||||
int s = Fonts.getHeight() + 20;
|
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, () -> {
|
saturnStagger.draw(new TextureButton(Textures.HUD_ICON, () -> {
|
||||||
client.setScreen(new HudEditor());
|
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, s + 8)));
|
||||||
|
|
||||||
saturnStagger.draw(new TextureButton(Textures.SETTINGS, () -> {
|
saturnStagger.draw(new TextureButton(Textures.SETTINGS, () -> {
|
||||||
SaturnClient.client.setScreen(new ModMenu());
|
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, s + 8)));
|
||||||
|
|
||||||
saturnStagger.draw(new TextureButton(Textures.CLOAK, () -> {
|
saturnStagger.draw(new TextureButton(Textures.CLOAK, () -> {
|
||||||
client.setScreen(new CloakMenu());
|
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, s + 8)));
|
||||||
|
|
||||||
draw(saturnStagger.dimensions(((s + 2) * 2) + s, s).centerHorizontal(width, height, 0, 8));
|
draw(saturnStagger.dimensions(((s + 2) * 2) + s, s).centerHorizontal(width, height, 0, 8));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,12 +2,16 @@ package org.saturnclient.ui2.screens.cosmetics;
|
|||||||
|
|
||||||
import org.saturnclient.saturnclient.SaturnClient;
|
import org.saturnclient.saturnclient.SaturnClient;
|
||||||
import org.saturnclient.saturnclient.client.player.SaturnPlayer;
|
import org.saturnclient.saturnclient.client.player.SaturnPlayer;
|
||||||
|
import org.saturnclient.saturnclient.config.AnimationConfig;
|
||||||
import org.saturnclient.saturnclient.cosmetics.cloaks.Cloaks;
|
import org.saturnclient.saturnclient.cosmetics.cloaks.Cloaks;
|
||||||
import org.saturnclient.ui2.resources.Textures;
|
import org.saturnclient.ui2.resources.Textures;
|
||||||
import org.saturnclient.ui2.SaturnScreen;
|
import org.saturnclient.ui2.SaturnScreen;
|
||||||
|
import org.saturnclient.ui2.anim.Fade;
|
||||||
|
import org.saturnclient.ui2.anim.SlideY;
|
||||||
import org.saturnclient.ui2.components.CosmeticPreview;
|
import org.saturnclient.ui2.components.CosmeticPreview;
|
||||||
import org.saturnclient.ui2.components.Sidebar;
|
import org.saturnclient.ui2.components.Sidebar;
|
||||||
import org.saturnclient.ui2.components.SkinPreview;
|
import org.saturnclient.ui2.components.SkinPreview;
|
||||||
|
import org.saturnclient.ui2.elements.AnimationStagger;
|
||||||
import org.saturnclient.ui2.elements.Scroll;
|
import org.saturnclient.ui2.elements.Scroll;
|
||||||
import org.saturnclient.ui2.elements.TabMenu;
|
import org.saturnclient.ui2.elements.TabMenu;
|
||||||
import org.saturnclient.ui2.elements.TabMenu.TabMenuComponent;
|
import org.saturnclient.ui2.elements.TabMenu.TabMenuComponent;
|
||||||
@@ -29,11 +33,18 @@ public class CloakMenu extends SaturnScreen {
|
|||||||
|
|
||||||
SaturnPlayer player = SaturnPlayer.get();
|
SaturnPlayer player = SaturnPlayer.get();
|
||||||
|
|
||||||
|
AnimationStagger stagger = new AnimationStagger(AnimationConfig.cosmeticsMenu);
|
||||||
|
|
||||||
if (player != null) {
|
if (player != null) {
|
||||||
for (String cloak : Cloaks.availableCloaks) {
|
for (String cloak : Cloaks.availableCloaks) {
|
||||||
scroll.draw(new CosmeticPreview(cloak == player.cloak, Textures.getCloakPreview(cloak), () -> {
|
|
||||||
Cloaks.setCloak(cloak);
|
stagger.draw(
|
||||||
}).position((50 + g) * col, (111 + g) * row));
|
new CosmeticPreview(
|
||||||
|
cloak == player.cloak,
|
||||||
|
Textures.getCloakPreview(cloak),
|
||||||
|
() -> Cloaks.setCloak(cloak))
|
||||||
|
.position((50 + g) * col, (111 + g) * row)
|
||||||
|
.animation(new SlideY(AnimationConfig.cosmeticsMenu, 14)));
|
||||||
|
|
||||||
if (col == 5) {
|
if (col == 5) {
|
||||||
col = 0;
|
col = 0;
|
||||||
@@ -44,19 +55,29 @@ public class CloakMenu extends SaturnScreen {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
scroll.draw(stagger);
|
||||||
|
|
||||||
int scrollWidth = 480 + 10 + (g * 2) + (p * 2);
|
int scrollWidth = 480 + 10 + (g * 2) + (p * 2);
|
||||||
|
|
||||||
draw(scroll.dimensions(scrollWidth, 350).center(width, height));
|
draw(scroll
|
||||||
|
.dimensions(scrollWidth, 350)
|
||||||
|
.center(width, height));
|
||||||
|
|
||||||
draw(new SkinPreview(-30.0f, false).scale(3.5f).position(scroll.x + (scrollWidth - 220), scroll.y + 40));
|
draw(new SkinPreview(-30.0f, false)
|
||||||
|
.scale(3.5f)
|
||||||
|
.position(scroll.x + (scrollWidth - 220), scroll.y + 40)
|
||||||
|
.animation(new Fade(500)));
|
||||||
|
|
||||||
draw(new Sidebar(2, this::close).centerOffset(width, height, -(scrollWidth / 2 + 20), 0));
|
draw(new Sidebar(2, this::close)
|
||||||
|
.centerOffset(width, height, -(scrollWidth / 2 + 20), 0)
|
||||||
|
.animation(new Fade(400)));
|
||||||
|
|
||||||
draw(new TabMenu(0,
|
draw(new TabMenu(0,
|
||||||
new TabMenuComponent(Textures.CLOAK, () -> {
|
new TabMenuComponent(Textures.CLOAK, () -> {
|
||||||
}),
|
}),
|
||||||
new TabMenuComponent(Textures.HAT, () -> {
|
new TabMenuComponent(Textures.HAT, () -> {
|
||||||
SaturnClient.client.setScreen(new HatMenu());
|
SaturnClient.client.setScreen(new HatMenu());
|
||||||
})).centerOffset(width, height, 0, -195));
|
}))
|
||||||
|
.centerOffset(width, height, 0, -195));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,12 +2,16 @@ package org.saturnclient.ui2.screens.cosmetics;
|
|||||||
|
|
||||||
import org.saturnclient.saturnclient.SaturnClient;
|
import org.saturnclient.saturnclient.SaturnClient;
|
||||||
import org.saturnclient.saturnclient.client.player.SaturnPlayer;
|
import org.saturnclient.saturnclient.client.player.SaturnPlayer;
|
||||||
|
import org.saturnclient.saturnclient.config.AnimationConfig;
|
||||||
import org.saturnclient.saturnclient.cosmetics.Hats;
|
import org.saturnclient.saturnclient.cosmetics.Hats;
|
||||||
import org.saturnclient.ui2.resources.Textures;
|
import org.saturnclient.ui2.resources.Textures;
|
||||||
import org.saturnclient.ui2.SaturnScreen;
|
import org.saturnclient.ui2.SaturnScreen;
|
||||||
|
import org.saturnclient.ui2.anim.Fade;
|
||||||
|
import org.saturnclient.ui2.anim.SlideY;
|
||||||
import org.saturnclient.ui2.components.CosmeticPreview;
|
import org.saturnclient.ui2.components.CosmeticPreview;
|
||||||
import org.saturnclient.ui2.components.Sidebar;
|
import org.saturnclient.ui2.components.Sidebar;
|
||||||
import org.saturnclient.ui2.components.SkinPreview;
|
import org.saturnclient.ui2.components.SkinPreview;
|
||||||
|
import org.saturnclient.ui2.elements.AnimationStagger;
|
||||||
import org.saturnclient.ui2.elements.Scroll;
|
import org.saturnclient.ui2.elements.Scroll;
|
||||||
import org.saturnclient.ui2.elements.TabMenu;
|
import org.saturnclient.ui2.elements.TabMenu;
|
||||||
import org.saturnclient.ui2.elements.TabMenu.TabMenuComponent;
|
import org.saturnclient.ui2.elements.TabMenu.TabMenuComponent;
|
||||||
@@ -29,11 +33,19 @@ public class HatMenu extends SaturnScreen {
|
|||||||
|
|
||||||
SaturnPlayer player = SaturnPlayer.get();
|
SaturnPlayer player = SaturnPlayer.get();
|
||||||
|
|
||||||
|
AnimationStagger stagger = new AnimationStagger(AnimationConfig.cosmeticsMenu);
|
||||||
|
|
||||||
if (player != null) {
|
if (player != null) {
|
||||||
for (String hat : Hats.availableHats) {
|
for (String hat : Hats.availableHats) {
|
||||||
scroll.draw(new CosmeticPreview(hat == player.hat, Textures.getHatPreview(hat), () -> {
|
|
||||||
Hats.setHat(hat);
|
stagger.draw(
|
||||||
}).dimensions(50, 50).position((50 + g) * col, (50 + g) * row));
|
new CosmeticPreview(
|
||||||
|
hat == player.hat,
|
||||||
|
Textures.getHatPreview(hat),
|
||||||
|
() -> Hats.setHat(hat))
|
||||||
|
.dimensions(50, 50)
|
||||||
|
.position((50 + g) * col, (50 + g) * row)
|
||||||
|
.animation(new SlideY(AnimationConfig.cosmeticsMenu, 14)));
|
||||||
|
|
||||||
if (col == 5) {
|
if (col == 5) {
|
||||||
col = 0;
|
col = 0;
|
||||||
@@ -44,19 +56,29 @@ public class HatMenu extends SaturnScreen {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
scroll.draw(stagger);
|
||||||
|
|
||||||
int scrollWidth = 480 + 10 + (g * 2) + (p * 2);
|
int scrollWidth = 480 + 10 + (g * 2) + (p * 2);
|
||||||
|
|
||||||
draw(scroll.dimensions(scrollWidth, 350).center(width, height));
|
draw(scroll
|
||||||
|
.dimensions(scrollWidth, 350)
|
||||||
|
.center(width, height));
|
||||||
|
|
||||||
draw(new SkinPreview(170f, true).scale(3.5f).position(scroll.x + (scrollWidth - 220), scroll.y + 40));
|
draw(new SkinPreview(170f, true)
|
||||||
|
.scale(3.5f)
|
||||||
|
.position(scroll.x + (scrollWidth - 220), scroll.y + 40)
|
||||||
|
.animation(new Fade(500)));
|
||||||
|
|
||||||
draw(new Sidebar(2, this::close).centerOffset(width, height, -(scrollWidth / 2 + 20), 0));
|
draw(new Sidebar(2, this::close)
|
||||||
|
.centerOffset(width, height, -(scrollWidth / 2 + 20), 0)
|
||||||
|
.animation(new Fade(400)));
|
||||||
|
|
||||||
draw(new TabMenu(1,
|
draw(new TabMenu(1,
|
||||||
new TabMenuComponent(Textures.CLOAK, () -> {
|
new TabMenuComponent(Textures.CLOAK, () -> {
|
||||||
SaturnClient.client.setScreen(new CloakMenu());
|
SaturnClient.client.setScreen(new CloakMenu());
|
||||||
}),
|
}),
|
||||||
new TabMenuComponent(Textures.HAT, () -> {
|
new TabMenuComponent(Textures.HAT, () -> {
|
||||||
})).centerOffset(width, height, 0, -195));
|
}))
|
||||||
|
.centerOffset(width, height, 0, -195));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,12 +3,16 @@ package org.saturnclient.ui2.screens.store;
|
|||||||
import org.saturnclient.saturnclient.SaturnClient;
|
import org.saturnclient.saturnclient.SaturnClient;
|
||||||
import org.saturnclient.saturnclient.client.ServiceClient;
|
import org.saturnclient.saturnclient.client.ServiceClient;
|
||||||
import org.saturnclient.saturnclient.client.player.SaturnPlayer;
|
import org.saturnclient.saturnclient.client.player.SaturnPlayer;
|
||||||
|
import org.saturnclient.saturnclient.config.AnimationConfig;
|
||||||
import org.saturnclient.saturnclient.config.Theme;
|
import org.saturnclient.saturnclient.config.Theme;
|
||||||
import org.saturnclient.saturnclient.cosmetics.cloaks.Cloaks;
|
import org.saturnclient.saturnclient.cosmetics.cloaks.Cloaks;
|
||||||
import org.saturnclient.ui2.SaturnScreen;
|
import org.saturnclient.ui2.SaturnScreen;
|
||||||
import org.saturnclient.ui2.Utils;
|
import org.saturnclient.ui2.Utils;
|
||||||
|
import org.saturnclient.ui2.anim.Fade;
|
||||||
|
import org.saturnclient.ui2.anim.SlideY;
|
||||||
import org.saturnclient.ui2.components.CosmeticPreview;
|
import org.saturnclient.ui2.components.CosmeticPreview;
|
||||||
import org.saturnclient.ui2.components.Sidebar;
|
import org.saturnclient.ui2.components.Sidebar;
|
||||||
|
import org.saturnclient.ui2.elements.AnimationStagger;
|
||||||
import org.saturnclient.ui2.elements.ImageTexture;
|
import org.saturnclient.ui2.elements.ImageTexture;
|
||||||
import org.saturnclient.ui2.elements.Notification.NotificationKind;
|
import org.saturnclient.ui2.elements.Notification.NotificationKind;
|
||||||
import org.saturnclient.ui2.elements.Scroll;
|
import org.saturnclient.ui2.elements.Scroll;
|
||||||
@@ -45,41 +49,37 @@ public class CloakStore extends SaturnScreen {
|
|||||||
|
|
||||||
SaturnPlayer player = SaturnPlayer.get();
|
SaturnPlayer player = SaturnPlayer.get();
|
||||||
|
|
||||||
|
AnimationStagger stagger = new AnimationStagger(AnimationConfig.cosmeticsMenu);
|
||||||
|
|
||||||
if (player != null) {
|
if (player != null) {
|
||||||
for (String cloak : Cloaks.ALL_CLOAKS) {
|
for (String cloak : Cloaks.ALL_CLOAKS) {
|
||||||
if (!Cloaks.availableCloaks.contains(cloak)) {
|
if (!Cloaks.availableCloaks.contains(cloak)) {
|
||||||
|
|
||||||
int x = (50 + gx) * col;
|
int x = (50 + gx) * col;
|
||||||
int y = (111 + gy) * row;
|
int y = (111 + gy) * row;
|
||||||
|
|
||||||
scroll.draw(new CosmeticPreview(cloak == player.cloak, Textures.getCloakPreview(cloak), () -> {
|
stagger.draw(
|
||||||
long now = System.currentTimeMillis();
|
new CosmeticPreview(
|
||||||
if (now - lastPurchaseTime >= 3000) {
|
cloak == player.cloak,
|
||||||
Utils.notify(NotificationKind.Info, "Purchase processing", "Please wait");
|
Textures.getCloakPreview(cloak),
|
||||||
ServiceClient.buyCloak(cloak);
|
() -> handlePurchase(cloak))
|
||||||
lastPurchaseTime = now;
|
.position(x, y)
|
||||||
new Thread(() -> {
|
.animation(new SlideY(AnimationConfig.cosmeticsMenu, 16)));
|
||||||
try {
|
|
||||||
Thread.sleep(5000);
|
|
||||||
} catch (InterruptedException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
RenderSystem.recordRenderCall(() -> {
|
|
||||||
SaturnClient.client.setScreen(new CloakStore(now));
|
|
||||||
Utils.notify(NotificationKind.Success, "Purchase complete",
|
|
||||||
"Congrats, enjoy your new cloak!");
|
|
||||||
});
|
|
||||||
}).start();
|
|
||||||
} else {
|
|
||||||
Utils.notify(NotificationKind.Error, "Timeout error", "Please wait 3 seconds");
|
|
||||||
}
|
|
||||||
}).position(x, y));
|
|
||||||
|
|
||||||
String t = "100";
|
String t = "100";
|
||||||
|
|
||||||
scroll.draw(new Text(t).position(x + Fonts.centerX(50, t, Theme.FONT.value), y + 113).scale(0.5f));
|
stagger.draw(
|
||||||
|
new Text(t)
|
||||||
|
.position(x + Fonts.centerX(50, t, Theme.FONT.value), y + 113)
|
||||||
|
.scale(0.5f)
|
||||||
|
.animation(new Fade(400)));
|
||||||
|
|
||||||
scroll.draw(new ImageTexture(Textures.COINS).dimensions(16, 16)
|
stagger.draw(
|
||||||
.position(x + Fonts.getWidth(t, Theme.FONT.value) - 1, y + 112).scale(0.5f));
|
new ImageTexture(Textures.COINS)
|
||||||
|
.dimensions(16, 16)
|
||||||
|
.position(x + Fonts.getWidth(t, Theme.FONT.value) - 1, y + 112)
|
||||||
|
.scale(0.5f)
|
||||||
|
.animation(new Fade(400)));
|
||||||
|
|
||||||
if (col == 8) {
|
if (col == 8) {
|
||||||
col = 0;
|
col = 0;
|
||||||
@@ -91,17 +91,54 @@ public class CloakStore extends SaturnScreen {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
scroll.draw(stagger);
|
||||||
|
|
||||||
int scrollWidth = 480 + 40 + (gx * 2) + (p * 2);
|
int scrollWidth = 480 + 40 + (gx * 2) + (p * 2);
|
||||||
|
|
||||||
draw(scroll.dimensions(scrollWidth, 350).centerOffset(width, height, 15, 0));
|
draw(scroll
|
||||||
|
.dimensions(scrollWidth, 350)
|
||||||
|
.centerOffset(width, height, 15, 0));
|
||||||
|
|
||||||
draw(new Sidebar(5, this::close).centerOffset(width, height, -((scrollWidth - 30) / 2 + 20), 0));
|
draw(new Sidebar(5, this::close)
|
||||||
|
.centerOffset(width, height, -((scrollWidth - 30) / 2 + 20), 0)
|
||||||
|
.animation(new Fade(400)));
|
||||||
|
|
||||||
draw(new TabMenu(0,
|
draw(new TabMenu(0,
|
||||||
new TabMenuComponent(Textures.CLOAK, () -> {
|
new TabMenuComponent(Textures.CLOAK, () -> {
|
||||||
}),
|
}),
|
||||||
new TabMenuComponent(Textures.HAT, () -> {
|
new TabMenuComponent(Textures.HAT, () -> {
|
||||||
SaturnClient.client.setScreen(new HatStore());
|
SaturnClient.client.setScreen(new HatStore());
|
||||||
})).centerOffset(width, height, 0, -195));
|
}))
|
||||||
|
.centerOffset(width, height, 0, -195));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void handlePurchase(String cloak) {
|
||||||
|
long now = System.currentTimeMillis();
|
||||||
|
|
||||||
|
if (now - lastPurchaseTime >= 3000) {
|
||||||
|
Utils.notify(NotificationKind.Info, "Purchase processing", "Please wait");
|
||||||
|
|
||||||
|
ServiceClient.buyCloak(cloak);
|
||||||
|
lastPurchaseTime = now;
|
||||||
|
|
||||||
|
new Thread(() -> {
|
||||||
|
try {
|
||||||
|
Thread.sleep(5000);
|
||||||
|
} catch (InterruptedException ignored) {
|
||||||
|
}
|
||||||
|
|
||||||
|
RenderSystem.recordRenderCall(() -> {
|
||||||
|
SaturnClient.client.setScreen(new CloakStore(now));
|
||||||
|
Utils.notify(NotificationKind.Success,
|
||||||
|
"Purchase complete",
|
||||||
|
"Congrats, enjoy your new cloak!");
|
||||||
|
});
|
||||||
|
}).start();
|
||||||
|
|
||||||
|
} else {
|
||||||
|
Utils.notify(NotificationKind.Error,
|
||||||
|
"Timeout error",
|
||||||
|
"Please wait 3 seconds");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,12 +3,16 @@ package org.saturnclient.ui2.screens.store;
|
|||||||
import org.saturnclient.saturnclient.SaturnClient;
|
import org.saturnclient.saturnclient.SaturnClient;
|
||||||
import org.saturnclient.saturnclient.client.ServiceClient;
|
import org.saturnclient.saturnclient.client.ServiceClient;
|
||||||
import org.saturnclient.saturnclient.client.player.SaturnPlayer;
|
import org.saturnclient.saturnclient.client.player.SaturnPlayer;
|
||||||
|
import org.saturnclient.saturnclient.config.AnimationConfig;
|
||||||
import org.saturnclient.saturnclient.config.Theme;
|
import org.saturnclient.saturnclient.config.Theme;
|
||||||
import org.saturnclient.saturnclient.cosmetics.Hats;
|
import org.saturnclient.saturnclient.cosmetics.Hats;
|
||||||
import org.saturnclient.ui2.SaturnScreen;
|
import org.saturnclient.ui2.SaturnScreen;
|
||||||
import org.saturnclient.ui2.Utils;
|
import org.saturnclient.ui2.Utils;
|
||||||
|
import org.saturnclient.ui2.anim.Fade;
|
||||||
|
import org.saturnclient.ui2.anim.SlideY;
|
||||||
import org.saturnclient.ui2.components.CosmeticPreview;
|
import org.saturnclient.ui2.components.CosmeticPreview;
|
||||||
import org.saturnclient.ui2.components.Sidebar;
|
import org.saturnclient.ui2.components.Sidebar;
|
||||||
|
import org.saturnclient.ui2.elements.AnimationStagger;
|
||||||
import org.saturnclient.ui2.elements.ImageTexture;
|
import org.saturnclient.ui2.elements.ImageTexture;
|
||||||
import org.saturnclient.ui2.elements.Notification.NotificationKind;
|
import org.saturnclient.ui2.elements.Notification.NotificationKind;
|
||||||
import org.saturnclient.ui2.elements.Scroll;
|
import org.saturnclient.ui2.elements.Scroll;
|
||||||
@@ -45,41 +49,38 @@ public class HatStore extends SaturnScreen {
|
|||||||
|
|
||||||
SaturnPlayer player = SaturnPlayer.get();
|
SaturnPlayer player = SaturnPlayer.get();
|
||||||
|
|
||||||
|
AnimationStagger stagger = new AnimationStagger(AnimationConfig.cosmeticsMenu);
|
||||||
|
|
||||||
if (player != null) {
|
if (player != null) {
|
||||||
for (String hat : Hats.ALL_HATS) {
|
for (String hat : Hats.ALL_HATS) {
|
||||||
if (!Hats.availableHats.contains(hat)) {
|
if (!Hats.availableHats.contains(hat)) {
|
||||||
|
|
||||||
int x = (50 + gx) * col;
|
int x = (50 + gx) * col;
|
||||||
int y = (50 + gy) * row;
|
int y = (50 + gy) * row;
|
||||||
|
|
||||||
scroll.draw(new CosmeticPreview(hat == player.hat, Textures.getHatPreview(hat), () -> {
|
stagger.draw(
|
||||||
long now = System.currentTimeMillis();
|
new CosmeticPreview(
|
||||||
if (now - lastPurchaseTime >= 3000) {
|
hat == player.hat,
|
||||||
Utils.notify(NotificationKind.Info, "Purchase processing", "Please wait");
|
Textures.getHatPreview(hat),
|
||||||
ServiceClient.buyHat(hat);
|
() -> handlePurchase(hat))
|
||||||
lastPurchaseTime = now;
|
.dimensions(50, 50)
|
||||||
new Thread(() -> {
|
.position(x, y)
|
||||||
try {
|
.animation(new SlideY(AnimationConfig.cosmeticsMenu, 16)));
|
||||||
Thread.sleep(5000);
|
|
||||||
} catch (InterruptedException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
RenderSystem.recordRenderCall(() -> {
|
|
||||||
SaturnClient.client.setScreen(new HatStore(now));
|
|
||||||
Utils.notify(NotificationKind.Success, "Purchase complete",
|
|
||||||
"Congrats, enjoy your new hat!");
|
|
||||||
});
|
|
||||||
}).start();
|
|
||||||
} else {
|
|
||||||
Utils.notify(NotificationKind.Error, "Timeout error", "Please wait 3 seconds");
|
|
||||||
}
|
|
||||||
}).dimensions(50, 50).position(x, y));
|
|
||||||
|
|
||||||
String t = "50";
|
String t = "50";
|
||||||
|
|
||||||
scroll.draw(new Text(t).position(x + Fonts.centerX(50, t, Theme.FONT.value), y + 53).scale(0.5f));
|
stagger.draw(
|
||||||
|
new Text(t)
|
||||||
|
.position(x + Fonts.centerX(50, t, Theme.FONT.value), y + 53)
|
||||||
|
.scale(0.5f)
|
||||||
|
.animation(new Fade(400)));
|
||||||
|
|
||||||
scroll.draw(new ImageTexture(Textures.COINS).dimensions(16, 16)
|
stagger.draw(
|
||||||
.position(x + Fonts.getWidth(t, Theme.FONT.value) + 4, y + 52).scale(0.5f));
|
new ImageTexture(Textures.COINS)
|
||||||
|
.dimensions(16, 16)
|
||||||
|
.position(x + Fonts.getWidth(t, Theme.FONT.value) + 4, y + 52)
|
||||||
|
.scale(0.5f)
|
||||||
|
.animation(new Fade(400)));
|
||||||
|
|
||||||
if (col == 8) {
|
if (col == 8) {
|
||||||
col = 0;
|
col = 0;
|
||||||
@@ -91,17 +92,54 @@ public class HatStore extends SaturnScreen {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
scroll.draw(stagger);
|
||||||
|
|
||||||
int scrollWidth = 480 + 40 + (gx * 2) + (p * 2);
|
int scrollWidth = 480 + 40 + (gx * 2) + (p * 2);
|
||||||
|
|
||||||
draw(scroll.dimensions(scrollWidth, 350).centerOffset(width, height, 15, 0));
|
draw(scroll
|
||||||
|
.dimensions(scrollWidth, 350)
|
||||||
|
.centerOffset(width, height, 15, 0));
|
||||||
|
|
||||||
draw(new Sidebar(5, this::close).centerOffset(width, height, -((scrollWidth - 30) / 2 + 20), 0));
|
draw(new Sidebar(5, this::close)
|
||||||
|
.centerOffset(width, height, -((scrollWidth - 30) / 2 + 20), 0)
|
||||||
|
.animation(new Fade(400)));
|
||||||
|
|
||||||
draw(new TabMenu(1,
|
draw(new TabMenu(1,
|
||||||
new TabMenuComponent(Textures.CLOAK, () -> {
|
new TabMenuComponent(Textures.CLOAK, () -> {
|
||||||
SaturnClient.client.setScreen(new CloakStore());
|
SaturnClient.client.setScreen(new CloakStore());
|
||||||
}),
|
}),
|
||||||
new TabMenuComponent(Textures.HAT, () -> {
|
new TabMenuComponent(Textures.HAT, () -> {
|
||||||
})).centerOffset(width, height, 0, -195));
|
}))
|
||||||
|
.centerOffset(width, height, 0, -195));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void handlePurchase(String hat) {
|
||||||
|
long now = System.currentTimeMillis();
|
||||||
|
|
||||||
|
if (now - lastPurchaseTime >= 3000) {
|
||||||
|
Utils.notify(NotificationKind.Info, "Purchase processing", "Please wait");
|
||||||
|
|
||||||
|
ServiceClient.buyHat(hat);
|
||||||
|
lastPurchaseTime = now;
|
||||||
|
|
||||||
|
new Thread(() -> {
|
||||||
|
try {
|
||||||
|
Thread.sleep(5000);
|
||||||
|
} catch (InterruptedException ignored) {
|
||||||
|
}
|
||||||
|
|
||||||
|
RenderSystem.recordRenderCall(() -> {
|
||||||
|
SaturnClient.client.setScreen(new HatStore(now));
|
||||||
|
Utils.notify(NotificationKind.Success,
|
||||||
|
"Purchase complete",
|
||||||
|
"Congrats, enjoy your new hat!");
|
||||||
|
});
|
||||||
|
}).start();
|
||||||
|
|
||||||
|
} else {
|
||||||
|
Utils.notify(NotificationKind.Error,
|
||||||
|
"Timeout error",
|
||||||
|
"Please wait 3 seconds");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user