From da6576e4edb9985fd9d862862c2346abf0b6e783 Mon Sep 17 00:00:00 2001 From: Klesti Selimaj Date: Sun, 8 Mar 2026 12:50:17 +0100 Subject: [PATCH] Refact module to feature --- .../common/provider/GLFWProvider.java | 4 +- .../common/provider/ModuleProvider.java | 5 + .../provider/RefConstructorProvider.java | 6 +- .../Module.java => feature/Feature.java} | 10 +- .../FeatureDetails.java} | 16 +- .../FeatureLayout.java} | 12 +- .../FeatureManager.java} | 14 +- .../HudMod.java => feature/HudFeature.java} | 6 +- .../features}/ArmorDisplay.java | 20 +- .../mods => feature/features}/AutoSprint.java | 12 +- .../mods => feature/features}/Clock.java | 18 +- .../features}/Coordinates.java | 20 +- .../mods => feature/features}/Crosshair.java | 12 +- .../mods => feature/features}/DayCounter.java | 20 +- .../mods => feature/features}/Fps.java | 20 +- .../mods => feature/features}/Freelook.java | 12 +- .../mods => feature/features}/Fullbright.java | 10 +- .../features}/HealthDisplay.java | 23 +- .../mods => feature/features}/Keystrokes.java | 20 +- .../mods => feature/features}/Nametags.java | 20 +- .../mods => feature/features}/NoFog.java | 10 +- .../mods => feature/features}/Ping.java | 20 +- .../features}/Speedometer.java | 20 +- .../features}/StatusEffects.java | 23 +- .../mods => feature/features}/Tps.java | 18 +- .../mods => feature/features}/Zoom.java | 10 +- .../interfaces/ArmorDisplayInterface.java | 2 +- .../interfaces/AutoSprintInterface.java | 2 +- .../interfaces/CoordinatesInterface.java | 2 +- .../interfaces/CrosshairInterface.java | 2 +- .../interfaces/DayCounterInterface.java | 2 +- .../interfaces/FpsInterface.java | 2 +- .../interfaces/FreelookInterface.java | 2 +- .../interfaces/HealthDisplayInterface.java | 2 +- .../interfaces/KeystrokesInterface.java | 2 +- .../interfaces/NametagsInterface.java | 2 +- .../interfaces/PingInterface.java | 2 +- .../interfaces/SpeedometerInterface.java | 2 +- .../interfaces/StatusEffectsInterface.java | 2 +- .../ui/components/SaturnModule.java | 272 +++++++++--------- .../saturnclient/ui/screens/HudEditor.java | 32 +-- .../org/saturnclient/ui/screens/ModMenu.java | 6 +- 42 files changed, 361 insertions(+), 356 deletions(-) create mode 100644 src/main/java/org/saturnclient/common/provider/ModuleProvider.java rename src/main/java/org/saturnclient/{modules/Module.java => feature/Feature.java} (84%) rename src/main/java/org/saturnclient/{modules/ModuleDetails.java => feature/FeatureDetails.java} (57%) rename src/main/java/org/saturnclient/{modules/ModDimensions.java => feature/FeatureLayout.java} (83%) rename src/main/java/org/saturnclient/{modules/ModManager.java => feature/FeatureManager.java} (62%) rename src/main/java/org/saturnclient/{modules/HudMod.java => feature/HudFeature.java} (56%) rename src/main/java/org/saturnclient/{modules/mods => feature/features}/ArmorDisplay.java (86%) rename src/main/java/org/saturnclient/{modules/mods => feature/features}/AutoSprint.java (78%) rename src/main/java/org/saturnclient/{modules/mods => feature/features}/Clock.java (83%) rename src/main/java/org/saturnclient/{modules/mods => feature/features}/Coordinates.java (80%) rename src/main/java/org/saturnclient/{modules/mods => feature/features}/Crosshair.java (81%) rename src/main/java/org/saturnclient/{modules/mods => feature/features}/DayCounter.java (74%) rename src/main/java/org/saturnclient/{modules/mods => feature/features}/Fps.java (72%) rename src/main/java/org/saturnclient/{modules/mods => feature/features}/Freelook.java (86%) rename src/main/java/org/saturnclient/{modules/mods => feature/features}/Fullbright.java (78%) rename src/main/java/org/saturnclient/{modules/mods => feature/features}/HealthDisplay.java (79%) rename src/main/java/org/saturnclient/{modules/mods => feature/features}/Keystrokes.java (89%) rename src/main/java/org/saturnclient/{modules/mods => feature/features}/Nametags.java (85%) rename src/main/java/org/saturnclient/{modules/mods => feature/features}/NoFog.java (78%) rename src/main/java/org/saturnclient/{modules/mods => feature/features}/Ping.java (72%) rename src/main/java/org/saturnclient/{modules/mods => feature/features}/Speedometer.java (83%) rename src/main/java/org/saturnclient/{modules/mods => feature/features}/StatusEffects.java (77%) rename src/main/java/org/saturnclient/{modules/mods => feature/features}/Tps.java (86%) rename src/main/java/org/saturnclient/{modules/mods => feature/features}/Zoom.java (87%) rename src/main/java/org/saturnclient/{modules => feature}/interfaces/ArmorDisplayInterface.java (90%) rename src/main/java/org/saturnclient/{modules => feature}/interfaces/AutoSprintInterface.java (86%) rename src/main/java/org/saturnclient/{modules => feature}/interfaces/CoordinatesInterface.java (71%) rename src/main/java/org/saturnclient/{modules => feature}/interfaces/CrosshairInterface.java (64%) rename src/main/java/org/saturnclient/{modules => feature}/interfaces/DayCounterInterface.java (57%) rename src/main/java/org/saturnclient/{modules => feature}/interfaces/FpsInterface.java (54%) rename src/main/java/org/saturnclient/{modules => feature}/interfaces/FreelookInterface.java (74%) rename src/main/java/org/saturnclient/{modules => feature}/interfaces/HealthDisplayInterface.java (62%) rename src/main/java/org/saturnclient/{modules => feature}/interfaces/KeystrokesInterface.java (84%) rename src/main/java/org/saturnclient/{modules => feature}/interfaces/NametagsInterface.java (87%) rename src/main/java/org/saturnclient/{modules => feature}/interfaces/PingInterface.java (71%) rename src/main/java/org/saturnclient/{modules => feature}/interfaces/SpeedometerInterface.java (90%) rename src/main/java/org/saturnclient/{modules => feature}/interfaces/StatusEffectsInterface.java (96%) diff --git a/src/main/java/org/saturnclient/common/provider/GLFWProvider.java b/src/main/java/org/saturnclient/common/provider/GLFWProvider.java index e295de2..4376c1a 100644 --- a/src/main/java/org/saturnclient/common/provider/GLFWProvider.java +++ b/src/main/java/org/saturnclient/common/provider/GLFWProvider.java @@ -1,9 +1,9 @@ package org.saturnclient.common.provider; public interface GLFWProvider { - public abstract boolean isKeyPressed(int key); + public boolean isKeyPressed(int key); - public abstract String getKeyName(int key); + public String getKeyName(int key); /** Printable keys. */ public static final int GLFW_KEY_SPACE = 32, diff --git a/src/main/java/org/saturnclient/common/provider/ModuleProvider.java b/src/main/java/org/saturnclient/common/provider/ModuleProvider.java new file mode 100644 index 0000000..ab7f314 --- /dev/null +++ b/src/main/java/org/saturnclient/common/provider/ModuleProvider.java @@ -0,0 +1,5 @@ +package org.saturnclient.common.provider; + +public interface ModuleProvider { + +} diff --git a/src/main/java/org/saturnclient/common/provider/RefConstructorProvider.java b/src/main/java/org/saturnclient/common/provider/RefConstructorProvider.java index a9c9ca6..d91f34d 100644 --- a/src/main/java/org/saturnclient/common/provider/RefConstructorProvider.java +++ b/src/main/java/org/saturnclient/common/provider/RefConstructorProvider.java @@ -4,9 +4,9 @@ import org.saturnclient.common.ref.asset.IdentifierRef; import org.saturnclient.common.ref.render.TextRef; public interface RefConstructorProvider { - public abstract IdentifierRef identifier(String namespace, String path); + public IdentifierRef identifier(String namespace, String path); - public abstract IdentifierRef identifier(String fullPath); + public IdentifierRef identifier(String fullPath); - public abstract TextRef text(String text); + public TextRef text(String text); } diff --git a/src/main/java/org/saturnclient/modules/Module.java b/src/main/java/org/saturnclient/feature/Feature.java similarity index 84% rename from src/main/java/org/saturnclient/modules/Module.java rename to src/main/java/org/saturnclient/feature/Feature.java index 7397187..2849c0d 100644 --- a/src/main/java/org/saturnclient/modules/Module.java +++ b/src/main/java/org/saturnclient/feature/Feature.java @@ -1,4 +1,4 @@ -package org.saturnclient.modules; +package org.saturnclient.feature; import org.saturnclient.common.ref.asset.IdentifierRef; import org.saturnclient.config.manager.ConfigManager; @@ -6,11 +6,11 @@ import org.saturnclient.config.manager.Property.NamedProperty; import org.saturnclient.ui.RenderScope; import org.saturnclient.ui.resources.Textures; -public abstract class Module { - private final ModuleDetails details; +public abstract class Feature { + private final FeatureDetails details; private final ConfigManager configManager; - public Module(ModuleDetails details, NamedProperty... props) { + public Feature(FeatureDetails details, NamedProperty... props) { this.details = details; configManager = new ConfigManager(details.name); for (NamedProperty prop : props) { @@ -28,7 +28,7 @@ public abstract class Module { public final void setEnabled(boolean e) { onEnabled(e); - ModManager.updateEnabledModules(); + FeatureManager.updateEnabledModules(); } public abstract void onEnabled(boolean e); diff --git a/src/main/java/org/saturnclient/modules/ModuleDetails.java b/src/main/java/org/saturnclient/feature/FeatureDetails.java similarity index 57% rename from src/main/java/org/saturnclient/modules/ModuleDetails.java rename to src/main/java/org/saturnclient/feature/FeatureDetails.java index 3cce480..2ad64ad 100644 --- a/src/main/java/org/saturnclient/modules/ModuleDetails.java +++ b/src/main/java/org/saturnclient/feature/FeatureDetails.java @@ -1,38 +1,38 @@ -package org.saturnclient.modules; +package org.saturnclient.feature; -public class ModuleDetails { +public class FeatureDetails { public String name; public String namespace; public String description; public String version; public String[] tags = {}; - public ModuleDetails(String name, String namespace) { + public FeatureDetails(String name, String namespace) { this.name = name; this.namespace = namespace; } - public ModuleDetails name(String name) { + public FeatureDetails name(String name) { this.name = name; return this; } - public ModuleDetails namespace(String namespace) { + public FeatureDetails namespace(String namespace) { this.namespace = namespace; return this; } - public ModuleDetails description(String description) { + public FeatureDetails description(String description) { this.description = description; return this; } - public ModuleDetails version(String version) { + public FeatureDetails version(String version) { this.version = version; return this; } - public ModuleDetails tags(String... tags) { + public FeatureDetails tags(String... tags) { this.tags = tags; return this; } diff --git a/src/main/java/org/saturnclient/modules/ModDimensions.java b/src/main/java/org/saturnclient/feature/FeatureLayout.java similarity index 83% rename from src/main/java/org/saturnclient/modules/ModDimensions.java rename to src/main/java/org/saturnclient/feature/FeatureLayout.java index 472f97a..02165ff 100644 --- a/src/main/java/org/saturnclient/modules/ModDimensions.java +++ b/src/main/java/org/saturnclient/feature/FeatureLayout.java @@ -1,11 +1,11 @@ -package org.saturnclient.modules; +package org.saturnclient.feature; import java.util.Map; import org.saturnclient.config.manager.Property; import org.saturnclient.config.manager.Property.NamedProperty; -public class ModDimensions { +public class FeatureLayout { public Property x = Property.integer(0); public Property y = Property.integer(0); public Property scale = Property.floatProp(1.0f); @@ -29,22 +29,22 @@ public class ModDimensions { "Font", font)).named("In-Game Display"); } - public ModDimensions() { + public FeatureLayout() { } - public ModDimensions(int width, int height) { + public FeatureLayout(int width, int height) { this.width = width; this.height = height; } - public ModDimensions(int x, int y, int width, int height) { + public FeatureLayout(int x, int y, int width, int height) { this.x.value = x; this.y.value = y; this.width = width; this.height = height; } - public ModDimensions(int x, int y, int width, int height, float scale) { + public FeatureLayout(int x, int y, int width, int height, float scale) { this.x.value = x; this.y.value = y; this.scale.value = scale; diff --git a/src/main/java/org/saturnclient/modules/ModManager.java b/src/main/java/org/saturnclient/feature/FeatureManager.java similarity index 62% rename from src/main/java/org/saturnclient/modules/ModManager.java rename to src/main/java/org/saturnclient/feature/FeatureManager.java index fa3324c..d806470 100644 --- a/src/main/java/org/saturnclient/modules/ModManager.java +++ b/src/main/java/org/saturnclient/feature/FeatureManager.java @@ -1,11 +1,11 @@ -package org.saturnclient.modules; +package org.saturnclient.feature; import java.util.ArrayList; import java.util.List; -public class ModManager { - public static List ENABLED_MODS = new ArrayList<>(); - public static Module[] MODS = {}; +public class FeatureManager { + public static List ENABLED_MODS = new ArrayList<>(); + public static Feature[] MODS = {}; public static void init(ModuleProvider provider) { MODS = provider.getMods(); @@ -14,18 +14,18 @@ public class ModManager { public static synchronized void updateEnabledModules() { ENABLED_MODS.clear(); - for (Module m : MODS) { + for (Feature m : MODS) { if (m.isEnabled()) { ENABLED_MODS.add(m); } } } - public static Module[] getAllMods() { + public static Feature[] getAllMods() { return MODS; } public interface ModuleProvider { - Module[] getMods(); + Feature[] getMods(); } } diff --git a/src/main/java/org/saturnclient/modules/HudMod.java b/src/main/java/org/saturnclient/feature/HudFeature.java similarity index 56% rename from src/main/java/org/saturnclient/modules/HudMod.java rename to src/main/java/org/saturnclient/feature/HudFeature.java index b8b09b5..5810736 100644 --- a/src/main/java/org/saturnclient/modules/HudMod.java +++ b/src/main/java/org/saturnclient/feature/HudFeature.java @@ -1,9 +1,9 @@ -package org.saturnclient.modules; +package org.saturnclient.feature; import org.saturnclient.ui.RenderScope; -public interface HudMod { - public ModDimensions getDimensions(); +public interface HudFeature { + public FeatureLayout getDimensions(); public void renderDummy(RenderScope scope); diff --git a/src/main/java/org/saturnclient/modules/mods/ArmorDisplay.java b/src/main/java/org/saturnclient/feature/features/ArmorDisplay.java similarity index 86% rename from src/main/java/org/saturnclient/modules/mods/ArmorDisplay.java rename to src/main/java/org/saturnclient/feature/features/ArmorDisplay.java index 21d9ca4..007a8d6 100644 --- a/src/main/java/org/saturnclient/modules/mods/ArmorDisplay.java +++ b/src/main/java/org/saturnclient/feature/features/ArmorDisplay.java @@ -1,24 +1,24 @@ -package org.saturnclient.modules.mods; +package org.saturnclient.feature.features; -import org.saturnclient.modules.HudMod; -import org.saturnclient.modules.ModDimensions; -import org.saturnclient.modules.Module; -import org.saturnclient.modules.ModuleDetails; -import org.saturnclient.modules.interfaces.ArmorDisplayInterface; import org.saturnclient.common.ref.game.ItemStackRef; import org.saturnclient.config.manager.Property; +import org.saturnclient.feature.HudFeature; +import org.saturnclient.feature.FeatureLayout; +import org.saturnclient.feature.Feature; +import org.saturnclient.feature.FeatureDetails; +import org.saturnclient.feature.interfaces.ArmorDisplayInterface; import org.saturnclient.ui.RenderScope; -public class ArmorDisplay extends Module implements HudMod { +public class ArmorDisplay extends Feature implements HudFeature { private static Property enabled = Property.bool(false); - private static ModDimensions dimensions = new ModDimensions(40, 75); + private static FeatureLayout dimensions = new FeatureLayout(40, 75); private static Property useMainHand = Property.bool(true); private final ArmorDisplayInterface minecraft; public ArmorDisplay(ArmorDisplayInterface minecraft) { - super(new ModuleDetails("Armor Display", "armor") + super(new FeatureDetails("Armor Display", "armor") .description("Displays armor durability") .version("v0.1.0") .tags("Utility"), @@ -102,7 +102,7 @@ public class ArmorDisplay extends Module implements HudMod { } @Override - public ModDimensions getDimensions() { + public FeatureLayout getDimensions() { return dimensions; } diff --git a/src/main/java/org/saturnclient/modules/mods/AutoSprint.java b/src/main/java/org/saturnclient/feature/features/AutoSprint.java similarity index 78% rename from src/main/java/org/saturnclient/modules/mods/AutoSprint.java rename to src/main/java/org/saturnclient/feature/features/AutoSprint.java index b256c55..57a709d 100644 --- a/src/main/java/org/saturnclient/modules/mods/AutoSprint.java +++ b/src/main/java/org/saturnclient/feature/features/AutoSprint.java @@ -1,11 +1,11 @@ -package org.saturnclient.modules.mods; +package org.saturnclient.feature.features; -import org.saturnclient.modules.Module; -import org.saturnclient.modules.ModuleDetails; -import org.saturnclient.modules.interfaces.AutoSprintInterface; import org.saturnclient.config.manager.Property; +import org.saturnclient.feature.Feature; +import org.saturnclient.feature.FeatureDetails; +import org.saturnclient.feature.interfaces.AutoSprintInterface; -public class AutoSprint extends Module { +public class AutoSprint extends Feature { private static Property enabled = Property.bool(false); @@ -13,7 +13,7 @@ public class AutoSprint extends Module { public AutoSprint(AutoSprintInterface minecraft) { super( - new ModuleDetails("Auto Sprint", "sprint") + new FeatureDetails("Auto Sprint", "sprint") .description("Makes the player always sprint") .tags("Movement") .version("v0.1.0"), diff --git a/src/main/java/org/saturnclient/modules/mods/Clock.java b/src/main/java/org/saturnclient/feature/features/Clock.java similarity index 83% rename from src/main/java/org/saturnclient/modules/mods/Clock.java rename to src/main/java/org/saturnclient/feature/features/Clock.java index 7726401..54327dc 100644 --- a/src/main/java/org/saturnclient/modules/mods/Clock.java +++ b/src/main/java/org/saturnclient/feature/features/Clock.java @@ -1,24 +1,24 @@ -package org.saturnclient.modules.mods; +package org.saturnclient.feature.features; import java.time.format.DateTimeFormatter; import java.time.LocalTime; -import org.saturnclient.modules.HudMod; -import org.saturnclient.modules.ModDimensions; -import org.saturnclient.modules.Module; -import org.saturnclient.modules.ModuleDetails; import org.saturnclient.config.manager.Property; +import org.saturnclient.feature.HudFeature; +import org.saturnclient.feature.FeatureLayout; +import org.saturnclient.feature.Feature; +import org.saturnclient.feature.FeatureDetails; import org.saturnclient.ui.RenderScope; import org.saturnclient.ui.resources.Fonts; -public class Clock extends Module implements HudMod { +public class Clock extends Feature implements HudFeature { private static Property enabled = Property.bool(false); private static Property format = Property.select(0, "24 hour", "12 hour"); private static Property seconds = Property.bool(false); - private static ModDimensions dimensions = new ModDimensions(60, Fonts.getHeight()); + private static FeatureLayout dimensions = new FeatureLayout(60, Fonts.getHeight()); public Clock() { - super(new ModuleDetails("Clock", "clock") + super(new FeatureDetails("Clock", "clock") .description("Displays the current real-world time") .version("v0.1.0") .tags("Utility"), @@ -71,7 +71,7 @@ public class Clock extends Module implements HudMod { } @Override - public ModDimensions getDimensions() { + public FeatureLayout getDimensions() { return dimensions; } diff --git a/src/main/java/org/saturnclient/modules/mods/Coordinates.java b/src/main/java/org/saturnclient/feature/features/Coordinates.java similarity index 80% rename from src/main/java/org/saturnclient/modules/mods/Coordinates.java rename to src/main/java/org/saturnclient/feature/features/Coordinates.java index bfd1b9f..e1fb418 100644 --- a/src/main/java/org/saturnclient/modules/mods/Coordinates.java +++ b/src/main/java/org/saturnclient/feature/features/Coordinates.java @@ -1,15 +1,15 @@ -package org.saturnclient.modules.mods; +package org.saturnclient.feature.features; -import org.saturnclient.modules.HudMod; -import org.saturnclient.modules.ModDimensions; -import org.saturnclient.modules.Module; -import org.saturnclient.modules.ModuleDetails; -import org.saturnclient.modules.interfaces.CoordinatesInterface; import org.saturnclient.config.manager.Property; +import org.saturnclient.feature.HudFeature; +import org.saturnclient.feature.FeatureLayout; +import org.saturnclient.feature.Feature; +import org.saturnclient.feature.FeatureDetails; +import org.saturnclient.feature.interfaces.CoordinatesInterface; import org.saturnclient.ui.RenderScope; import org.saturnclient.ui.resources.Fonts; -public class Coordinates extends Module implements HudMod { +public class Coordinates extends Feature implements HudFeature { private static Property enabled = Property.bool(false); @@ -20,12 +20,12 @@ public class Coordinates extends Module implements HudMod { "Newline", "Newline annotated"); - private static ModDimensions dimensions = new ModDimensions(40, 18); + private static FeatureLayout dimensions = new FeatureLayout(40, 18); private final CoordinatesInterface minecraft; public Coordinates(CoordinatesInterface minecraft) { - super(new ModuleDetails("Coordinates", "coords") + super(new FeatureDetails("Coordinates", "coords") .description("Displays your current coordinates") .version("v0.1.0") .tags("Utility"), @@ -87,7 +87,7 @@ public class Coordinates extends Module implements HudMod { } @Override - public ModDimensions getDimensions() { + public FeatureLayout getDimensions() { return dimensions; } diff --git a/src/main/java/org/saturnclient/modules/mods/Crosshair.java b/src/main/java/org/saturnclient/feature/features/Crosshair.java similarity index 81% rename from src/main/java/org/saturnclient/modules/mods/Crosshair.java rename to src/main/java/org/saturnclient/feature/features/Crosshair.java index ad76b5e..7f5fbf9 100644 --- a/src/main/java/org/saturnclient/modules/mods/Crosshair.java +++ b/src/main/java/org/saturnclient/feature/features/Crosshair.java @@ -1,13 +1,13 @@ -package org.saturnclient.modules.mods; +package org.saturnclient.feature.features; -import org.saturnclient.modules.Module; -import org.saturnclient.modules.ModuleDetails; -import org.saturnclient.modules.interfaces.CrosshairInterface; import org.saturnclient.config.manager.Property; +import org.saturnclient.feature.Feature; +import org.saturnclient.feature.FeatureDetails; +import org.saturnclient.feature.interfaces.CrosshairInterface; import org.saturnclient.ui.RenderScope; import org.saturnclient.ui.resources.Textures; -public class Crosshair extends Module { +public class Crosshair extends Feature { public static Property enabled = Property.bool(false); @@ -15,7 +15,7 @@ public class Crosshair extends Module { public Crosshair(CrosshairInterface minecraft) { super( - new ModuleDetails("Crosshair", "crosshair") + new FeatureDetails("Crosshair", "crosshair") .description("Changes the crosshair if you're aiming at a entity") .tags("Visuals", "Utility") .version("v0.1.0"), diff --git a/src/main/java/org/saturnclient/modules/mods/DayCounter.java b/src/main/java/org/saturnclient/feature/features/DayCounter.java similarity index 74% rename from src/main/java/org/saturnclient/modules/mods/DayCounter.java rename to src/main/java/org/saturnclient/feature/features/DayCounter.java index cdede7a..19985ed 100644 --- a/src/main/java/org/saturnclient/modules/mods/DayCounter.java +++ b/src/main/java/org/saturnclient/feature/features/DayCounter.java @@ -1,25 +1,25 @@ -package org.saturnclient.modules.mods; +package org.saturnclient.feature.features; -import org.saturnclient.modules.HudMod; -import org.saturnclient.modules.ModDimensions; -import org.saturnclient.modules.Module; -import org.saturnclient.modules.ModuleDetails; -import org.saturnclient.modules.interfaces.DayCounterInterface; import org.saturnclient.config.manager.Property; +import org.saturnclient.feature.HudFeature; +import org.saturnclient.feature.FeatureLayout; +import org.saturnclient.feature.Feature; +import org.saturnclient.feature.FeatureDetails; +import org.saturnclient.feature.interfaces.DayCounterInterface; import org.saturnclient.ui.RenderScope; import org.saturnclient.ui.resources.Fonts; -public class DayCounter extends Module implements HudMod { +public class DayCounter extends Feature implements HudFeature { private static Property enabled = Property.bool(false); - private static ModDimensions dimensions = new ModDimensions(40, 18); + private static FeatureLayout dimensions = new FeatureLayout(40, 18); private final DayCounterInterface minecraft; long day = 0; public DayCounter(DayCounterInterface minecraft) { - super(new ModuleDetails("DayCounter", "day") + super(new FeatureDetails("DayCounter", "day") .description("Displays the number of days that have passed") .version("v0.1.0") .tags("Utility"), @@ -60,7 +60,7 @@ public class DayCounter extends Module implements HudMod { } @Override - public ModDimensions getDimensions() { + public FeatureLayout getDimensions() { return dimensions; } diff --git a/src/main/java/org/saturnclient/modules/mods/Fps.java b/src/main/java/org/saturnclient/feature/features/Fps.java similarity index 72% rename from src/main/java/org/saturnclient/modules/mods/Fps.java rename to src/main/java/org/saturnclient/feature/features/Fps.java index 0c8c1a0..8a80419 100644 --- a/src/main/java/org/saturnclient/modules/mods/Fps.java +++ b/src/main/java/org/saturnclient/feature/features/Fps.java @@ -1,23 +1,23 @@ -package org.saturnclient.modules.mods; +package org.saturnclient.feature.features; -import org.saturnclient.modules.HudMod; -import org.saturnclient.modules.ModDimensions; -import org.saturnclient.modules.Module; -import org.saturnclient.modules.ModuleDetails; -import org.saturnclient.modules.interfaces.FpsInterface; import org.saturnclient.config.manager.Property; +import org.saturnclient.feature.HudFeature; +import org.saturnclient.feature.FeatureLayout; +import org.saturnclient.feature.Feature; +import org.saturnclient.feature.FeatureDetails; +import org.saturnclient.feature.interfaces.FpsInterface; import org.saturnclient.ui.RenderScope; import org.saturnclient.ui.resources.Fonts; -public class Fps extends Module implements HudMod { +public class Fps extends Feature implements HudFeature { private static Property enabled = Property.bool(false); - private static ModDimensions dimensions = new ModDimensions(60, Fonts.getHeight()); + private static FeatureLayout dimensions = new FeatureLayout(60, Fonts.getHeight()); private final FpsInterface minecraft; public Fps(FpsInterface minecraft) { - super(new ModuleDetails("FPS Display", "fps") + super(new FeatureDetails("FPS Display", "fps") .description("Displays current FPS") .version("v0.1.0") .tags("Utility"), @@ -58,7 +58,7 @@ public class Fps extends Module implements HudMod { } @Override - public ModDimensions getDimensions() { + public FeatureLayout getDimensions() { return dimensions; } } \ No newline at end of file diff --git a/src/main/java/org/saturnclient/modules/mods/Freelook.java b/src/main/java/org/saturnclient/feature/features/Freelook.java similarity index 86% rename from src/main/java/org/saturnclient/modules/mods/Freelook.java rename to src/main/java/org/saturnclient/feature/features/Freelook.java index a68941e..998721c 100644 --- a/src/main/java/org/saturnclient/modules/mods/Freelook.java +++ b/src/main/java/org/saturnclient/feature/features/Freelook.java @@ -1,12 +1,12 @@ -package org.saturnclient.modules.mods; +package org.saturnclient.feature.features; -import org.saturnclient.modules.Module; -import org.saturnclient.modules.ModuleDetails; -import org.saturnclient.modules.interfaces.FreelookInterface; import org.saturnclient.common.provider.GLFWProvider; import org.saturnclient.config.manager.Property; +import org.saturnclient.feature.Feature; +import org.saturnclient.feature.FeatureDetails; +import org.saturnclient.feature.interfaces.FreelookInterface; -public class Freelook extends Module { +public class Freelook extends Feature { private static Property enabled = Property.bool(false); private static Property toggle = Property.bool(true); @@ -20,7 +20,7 @@ public class Freelook extends Module { public Freelook(FreelookInterface minecraft) { super( - new ModuleDetails("Freelook", "freelook") + new FeatureDetails("Freelook", "freelook") .description("Allows you to look around freely without moving your character") .tags("Movement", "Camera") .version("0.1.0"), diff --git a/src/main/java/org/saturnclient/modules/mods/Fullbright.java b/src/main/java/org/saturnclient/feature/features/Fullbright.java similarity index 78% rename from src/main/java/org/saturnclient/modules/mods/Fullbright.java rename to src/main/java/org/saturnclient/feature/features/Fullbright.java index e067c37..0a7bb5d 100644 --- a/src/main/java/org/saturnclient/modules/mods/Fullbright.java +++ b/src/main/java/org/saturnclient/feature/features/Fullbright.java @@ -1,16 +1,16 @@ -package org.saturnclient.modules.mods; +package org.saturnclient.feature.features; -import org.saturnclient.modules.Module; -import org.saturnclient.modules.ModuleDetails; import org.saturnclient.config.manager.Property; +import org.saturnclient.feature.Feature; +import org.saturnclient.feature.FeatureDetails; -public class Fullbright extends Module { +public class Fullbright extends Feature { private static Property enabled = Property.bool(false); private static Property brightness = Property.integer(100); public Fullbright() { super( - new ModuleDetails("Fullbright", "fullbright") + new FeatureDetails("Fullbright", "fullbright") .description("Allows you to see in the dark") .tags("Camera") .version("v0.1.0"), diff --git a/src/main/java/org/saturnclient/modules/mods/HealthDisplay.java b/src/main/java/org/saturnclient/feature/features/HealthDisplay.java similarity index 79% rename from src/main/java/org/saturnclient/modules/mods/HealthDisplay.java rename to src/main/java/org/saturnclient/feature/features/HealthDisplay.java index b217101..4919791 100644 --- a/src/main/java/org/saturnclient/modules/mods/HealthDisplay.java +++ b/src/main/java/org/saturnclient/feature/features/HealthDisplay.java @@ -1,26 +1,26 @@ -package org.saturnclient.modules.mods; +package org.saturnclient.feature.features; -import org.saturnclient.modules.HudMod; -import org.saturnclient.modules.ModDimensions; -import org.saturnclient.modules.Module; -import org.saturnclient.modules.ModuleDetails; -import org.saturnclient.modules.interfaces.HealthDisplayInterface; import org.saturnclient.config.manager.Property; +import org.saturnclient.feature.HudFeature; +import org.saturnclient.feature.FeatureLayout; +import org.saturnclient.feature.Feature; +import org.saturnclient.feature.FeatureDetails; +import org.saturnclient.feature.interfaces.HealthDisplayInterface; import org.saturnclient.ui.RenderScope; import org.saturnclient.ui.resources.Fonts; -public class HealthDisplay extends Module implements HudMod { +public class HealthDisplay extends Feature implements HudFeature { private static Property enabled = Property.bool(false); private static Property displayMode = Property.select(0, "Health", "Hearts"); private static Property decimals = Property.select(0, "0", "1", "2"); - private static ModDimensions dimensions = new ModDimensions(40, 18); + private static FeatureLayout dimensions = new FeatureLayout(40, 18); private final HealthDisplayInterface minecraft; public HealthDisplay(HealthDisplayInterface minecraft) { - super(new ModuleDetails("Health display", "health") + super(new FeatureDetails("Health display", "health") .description("Displays your current health") .version("v0.1.0") .tags("Utility"), @@ -73,8 +73,7 @@ public class HealthDisplay extends Module implements HudMod { 0, 0, dimensions.font.value, - dimensions.fgColor.value - ); + dimensions.fgColor.value); dimensions.width = Fonts.getWidth(text, dimensions.font.value); dimensions.height = 18 * text.split("\n").length; @@ -86,7 +85,7 @@ public class HealthDisplay extends Module implements HudMod { } @Override - public ModDimensions getDimensions() { + public FeatureLayout getDimensions() { return dimensions; } diff --git a/src/main/java/org/saturnclient/modules/mods/Keystrokes.java b/src/main/java/org/saturnclient/feature/features/Keystrokes.java similarity index 89% rename from src/main/java/org/saturnclient/modules/mods/Keystrokes.java rename to src/main/java/org/saturnclient/feature/features/Keystrokes.java index acf7256..2955781 100644 --- a/src/main/java/org/saturnclient/modules/mods/Keystrokes.java +++ b/src/main/java/org/saturnclient/feature/features/Keystrokes.java @@ -1,14 +1,14 @@ -package org.saturnclient.modules.mods; +package org.saturnclient.feature.features; -import org.saturnclient.modules.Module; -import org.saturnclient.modules.HudMod; -import org.saturnclient.modules.ModDimensions; -import org.saturnclient.modules.ModuleDetails; -import org.saturnclient.modules.interfaces.KeystrokesInterface; import org.saturnclient.config.manager.Property; +import org.saturnclient.feature.HudFeature; +import org.saturnclient.feature.FeatureLayout; +import org.saturnclient.feature.Feature; +import org.saturnclient.feature.FeatureDetails; +import org.saturnclient.feature.interfaces.KeystrokesInterface; import org.saturnclient.ui.RenderScope; -public class Keystrokes extends Module implements HudMod { +public class Keystrokes extends Feature implements HudFeature { private static final Property enabled = Property.bool(false); private static final Property showMouse = Property.bool(true); @@ -17,7 +17,7 @@ public class Keystrokes extends Module implements HudMod { private static final Property clickBg = Property.color(0xFFCCCCCC); private static final Property clickFg = Property.color(0xFFFFFFFF); - private static final ModDimensions dimensions = new ModDimensions(78, 54); + private static final FeatureLayout dimensions = new FeatureLayout(78, 54); private final KeystrokesInterface minecraft; @@ -32,7 +32,7 @@ public class Keystrokes extends Module implements HudMod { private static final int SPACE_HEIGHT = 19; public Keystrokes(KeystrokesInterface minecraft) { - super(new ModuleDetails("Keystrokes", "keystrokes") + super(new FeatureDetails("Keystrokes", "keystrokes") .description("Displays movement keystrokes") .version("v0.2.0") .tags("Utility"), @@ -145,7 +145,7 @@ public class Keystrokes extends Module implements HudMod { } @Override - public ModDimensions getDimensions() { + public FeatureLayout getDimensions() { return dimensions; } diff --git a/src/main/java/org/saturnclient/modules/mods/Nametags.java b/src/main/java/org/saturnclient/feature/features/Nametags.java similarity index 85% rename from src/main/java/org/saturnclient/modules/mods/Nametags.java rename to src/main/java/org/saturnclient/feature/features/Nametags.java index 17b5de2..bbb2877 100644 --- a/src/main/java/org/saturnclient/modules/mods/Nametags.java +++ b/src/main/java/org/saturnclient/feature/features/Nametags.java @@ -1,11 +1,11 @@ -package org.saturnclient.modules.mods; +package org.saturnclient.feature.features; -import org.saturnclient.modules.Module; -import org.saturnclient.modules.ModuleDetails; import org.saturnclient.config.manager.Property; -import org.saturnclient.modules.interfaces.NametagsInterface; +import org.saturnclient.feature.Feature; +import org.saturnclient.feature.FeatureDetails; +import org.saturnclient.feature.interfaces.NametagsInterface; -public class Nametags extends Module { +public class Nametags extends Feature { private static Property enabled = Property.bool(false); private static Property healthDisplay = Property.bool(false); @@ -17,11 +17,11 @@ public class Nametags extends Module { private static Property unit = Property.select(0, "Health", "Hearts"); private static Property format = Property.select(0, "Value", "Value / Total", "%"); private static Property nameColor = Property.select(15, - "Black","Dark Blue","Dark Green","Dark Aqua","Dark Red","Dark Purple","Gold","Gray", - "Dark Gray","Blue","Green","Aqua","Red","Light Purple","Yellow","White"); + "Black", "Dark Blue", "Dark Green", "Dark Aqua", "Dark Red", "Dark Purple", "Gold", "Gray", + "Dark Gray", "Blue", "Green", "Aqua", "Red", "Light Purple", "Yellow", "White"); private static Property healthColor = Property.select(12, - "Black","Dark Blue","Dark Green","Dark Aqua","Dark Red","Dark Purple","Gold","Gray", - "Dark Gray","Blue","Green","Aqua","Red","Light Purple","Yellow","White"); + "Black", "Dark Blue", "Dark Green", "Dark Aqua", "Dark Red", "Dark Purple", "Gold", "Gray", + "Dark Gray", "Blue", "Green", "Aqua", "Red", "Light Purple", "Yellow", "White"); private static final String[] COLOR_CODES = { "§0", "§1", "§2", "§3", "§4", "§5", "§6", "§7", @@ -29,7 +29,7 @@ public class Nametags extends Module { }; public Nametags(NametagsInterface minecraft) { - super(new ModuleDetails("Nametags", "nametags") + super(new FeatureDetails("Nametags", "nametags") .description("Allows you to modify entity nametags") .tags("Camera", "Utility") .version("0.1.0"), diff --git a/src/main/java/org/saturnclient/modules/mods/NoFog.java b/src/main/java/org/saturnclient/feature/features/NoFog.java similarity index 78% rename from src/main/java/org/saturnclient/modules/mods/NoFog.java rename to src/main/java/org/saturnclient/feature/features/NoFog.java index 3b0ee88..1f8e1da 100644 --- a/src/main/java/org/saturnclient/modules/mods/NoFog.java +++ b/src/main/java/org/saturnclient/feature/features/NoFog.java @@ -1,16 +1,16 @@ -package org.saturnclient.modules.mods; +package org.saturnclient.feature.features; -import org.saturnclient.modules.Module; -import org.saturnclient.modules.ModuleDetails; import org.saturnclient.config.manager.Property; +import org.saturnclient.feature.Feature; +import org.saturnclient.feature.FeatureDetails; -public class NoFog extends Module { +public class NoFog extends Feature { private static Property enabled = Property.bool(false); private static Property liquids = Property.bool(false); public NoFog() { super( - new ModuleDetails("No Fog", "nofog") + new FeatureDetails("No Fog", "nofog") .description("Stops fog from rendering") .tags("Camera") .version("v0.1.0"), diff --git a/src/main/java/org/saturnclient/modules/mods/Ping.java b/src/main/java/org/saturnclient/feature/features/Ping.java similarity index 72% rename from src/main/java/org/saturnclient/modules/mods/Ping.java rename to src/main/java/org/saturnclient/feature/features/Ping.java index 7d84914..0ebdb78 100644 --- a/src/main/java/org/saturnclient/modules/mods/Ping.java +++ b/src/main/java/org/saturnclient/feature/features/Ping.java @@ -1,23 +1,23 @@ -package org.saturnclient.modules.mods; +package org.saturnclient.feature.features; -import org.saturnclient.modules.HudMod; -import org.saturnclient.modules.ModDimensions; -import org.saturnclient.modules.Module; -import org.saturnclient.modules.ModuleDetails; import org.saturnclient.config.manager.Property; -import org.saturnclient.modules.interfaces.PingInterface; +import org.saturnclient.feature.HudFeature; +import org.saturnclient.feature.FeatureLayout; +import org.saturnclient.feature.Feature; +import org.saturnclient.feature.FeatureDetails; +import org.saturnclient.feature.interfaces.PingInterface; import org.saturnclient.ui.RenderScope; import org.saturnclient.ui.resources.Fonts; -public class Ping extends Module implements HudMod { +public class Ping extends Feature implements HudFeature { private static Property enabled = Property.bool(false); - private static ModDimensions dimensions = new ModDimensions(60, Fonts.getHeight()); + private static FeatureLayout dimensions = new FeatureLayout(60, Fonts.getHeight()); private final PingInterface pingProvider; public Ping(PingInterface pingProvider) { - super(new ModuleDetails("Ping Display", "ping") + super(new FeatureDetails("Ping Display", "ping") .description("Displays ping") .version("v0.1.0") .tags("Utility"), @@ -53,7 +53,7 @@ public class Ping extends Module implements HudMod { } @Override - public ModDimensions getDimensions() { + public FeatureLayout getDimensions() { return dimensions; } } \ No newline at end of file diff --git a/src/main/java/org/saturnclient/modules/mods/Speedometer.java b/src/main/java/org/saturnclient/feature/features/Speedometer.java similarity index 83% rename from src/main/java/org/saturnclient/modules/mods/Speedometer.java rename to src/main/java/org/saturnclient/feature/features/Speedometer.java index b131ace..71f89b1 100644 --- a/src/main/java/org/saturnclient/modules/mods/Speedometer.java +++ b/src/main/java/org/saturnclient/feature/features/Speedometer.java @@ -1,27 +1,27 @@ -package org.saturnclient.modules.mods; +package org.saturnclient.feature.features; -import org.saturnclient.modules.HudMod; -import org.saturnclient.modules.ModDimensions; -import org.saturnclient.modules.Module; -import org.saturnclient.modules.ModuleDetails; import org.saturnclient.config.manager.Property; -import org.saturnclient.modules.interfaces.SpeedometerInterface; +import org.saturnclient.feature.HudFeature; +import org.saturnclient.feature.FeatureLayout; +import org.saturnclient.feature.Feature; +import org.saturnclient.feature.FeatureDetails; +import org.saturnclient.feature.interfaces.SpeedometerInterface; import org.saturnclient.ui.RenderScope; import org.saturnclient.ui.resources.Fonts; -public class Speedometer extends Module implements HudMod { +public class Speedometer extends Feature implements HudFeature { private static Property enabled = Property.bool(false); private static Property axis = Property.select(1, "Absolute", "X axis", "Y axis"); private static Property unitText = Property.select(0, "None", "Blocks/s", "blocks/s", "b/s"); private static Property speedText = Property.bool(true); - private static ModDimensions dimensions = new ModDimensions(40, 18); + private static FeatureLayout dimensions = new FeatureLayout(40, 18); private final SpeedometerInterface provider; private double speed = 0.; public Speedometer(SpeedometerInterface provider) { - super(new ModuleDetails("Speedometer", "speed") + super(new FeatureDetails("Speedometer", "speed") .description("Displays your current speed") .version("v0.1.0") .tags("Utility"), @@ -85,7 +85,7 @@ public class Speedometer extends Module implements HudMod { } @Override - public ModDimensions getDimensions() { + public FeatureLayout getDimensions() { return dimensions; } diff --git a/src/main/java/org/saturnclient/modules/mods/StatusEffects.java b/src/main/java/org/saturnclient/feature/features/StatusEffects.java similarity index 77% rename from src/main/java/org/saturnclient/modules/mods/StatusEffects.java rename to src/main/java/org/saturnclient/feature/features/StatusEffects.java index cbd8efe..fb21930 100644 --- a/src/main/java/org/saturnclient/modules/mods/StatusEffects.java +++ b/src/main/java/org/saturnclient/feature/features/StatusEffects.java @@ -1,24 +1,24 @@ -package org.saturnclient.modules.mods; +package org.saturnclient.feature.features; import java.util.List; -import org.saturnclient.modules.HudMod; -import org.saturnclient.modules.ModDimensions; -import org.saturnclient.modules.Module; -import org.saturnclient.modules.ModuleDetails; -import org.saturnclient.modules.interfaces.StatusEffectsInterface; import org.saturnclient.config.manager.Property; +import org.saturnclient.feature.HudFeature; +import org.saturnclient.feature.FeatureLayout; +import org.saturnclient.feature.Feature; +import org.saturnclient.feature.FeatureDetails; +import org.saturnclient.feature.interfaces.StatusEffectsInterface; import org.saturnclient.ui.RenderScope; -public class StatusEffects extends Module implements HudMod { +public class StatusEffects extends Feature implements HudFeature { public static Property enabled = Property.bool(false); - private static ModDimensions dimensions = new ModDimensions(60, 0); + private static FeatureLayout dimensions = new FeatureLayout(60, 0); private final StatusEffectsInterface provider; public StatusEffects(StatusEffectsInterface provider) { - super(new ModuleDetails("Status effects", "effect") + super(new FeatureDetails("Status effects", "effect") .description("Displays status effects") .version("v0.1.0") .tags("Utility"), @@ -32,7 +32,8 @@ public class StatusEffects extends Module implements HudMod { int row = 0; for (StatusEffectsInterface.Effect effect : effects) { - if (!effect.shouldShowIcon()) continue; + if (!effect.shouldShowIcon()) + continue; scope.drawSpriteStretched(effect.getIcon(), 0, 18 * row, 16, 16); scope.drawText(0.5f, getDurationAsString(effect), 18, 18 * row + 3, dimensions.font.value, -1); @@ -70,7 +71,7 @@ public class StatusEffects extends Module implements HudMod { } @Override - public ModDimensions getDimensions() { + public FeatureLayout getDimensions() { return dimensions; } diff --git a/src/main/java/org/saturnclient/modules/mods/Tps.java b/src/main/java/org/saturnclient/feature/features/Tps.java similarity index 86% rename from src/main/java/org/saturnclient/modules/mods/Tps.java rename to src/main/java/org/saturnclient/feature/features/Tps.java index 4f1acb4..9f9bafc 100644 --- a/src/main/java/org/saturnclient/modules/mods/Tps.java +++ b/src/main/java/org/saturnclient/feature/features/Tps.java @@ -1,16 +1,16 @@ -package org.saturnclient.modules.mods; +package org.saturnclient.feature.features; -import org.saturnclient.modules.HudMod; -import org.saturnclient.modules.ModDimensions; -import org.saturnclient.modules.Module; -import org.saturnclient.modules.ModuleDetails; import org.saturnclient.config.manager.Property; +import org.saturnclient.feature.HudFeature; +import org.saturnclient.feature.FeatureLayout; +import org.saturnclient.feature.Feature; +import org.saturnclient.feature.FeatureDetails; import org.saturnclient.ui.RenderScope; import org.saturnclient.ui.resources.Fonts; -public class Tps extends Module implements HudMod { +public class Tps extends Feature implements HudFeature { private static Property enabled = Property.bool(false); - private static ModDimensions dimensions = new ModDimensions(60, Fonts.getHeight()); + private static FeatureLayout dimensions = new FeatureLayout(60, Fonts.getHeight()); private static long lastWorldAge = -1; private static long lastRealTime = -1; @@ -25,7 +25,7 @@ public class Tps extends Module implements HudMod { private static int samplesFilled = 0; public Tps() { - super(new ModuleDetails("TPS Display", "tps") + super(new FeatureDetails("TPS Display", "tps") .description("Displays the TPS") .version("v0.1.0") .tags("Utility"), @@ -94,7 +94,7 @@ public class Tps extends Module implements HudMod { } @Override - public ModDimensions getDimensions() { + public FeatureLayout getDimensions() { return dimensions; } } diff --git a/src/main/java/org/saturnclient/modules/mods/Zoom.java b/src/main/java/org/saturnclient/feature/features/Zoom.java similarity index 87% rename from src/main/java/org/saturnclient/modules/mods/Zoom.java rename to src/main/java/org/saturnclient/feature/features/Zoom.java index 4dcf5da..48e3f54 100644 --- a/src/main/java/org/saturnclient/modules/mods/Zoom.java +++ b/src/main/java/org/saturnclient/feature/features/Zoom.java @@ -1,11 +1,11 @@ -package org.saturnclient.modules.mods; +package org.saturnclient.feature.features; -import org.saturnclient.modules.Module; -import org.saturnclient.modules.ModuleDetails; import org.saturnclient.common.provider.GLFWProvider; import org.saturnclient.config.manager.Property; +import org.saturnclient.feature.Feature; +import org.saturnclient.feature.FeatureDetails; -public class Zoom extends Module { +public class Zoom extends Feature { private static Property enabled = Property.bool(false); private static Property toggle = Property.bool(false); public static Property zoomKey = Property.keybinding(GLFWProvider.GLFW_KEY_C); @@ -15,7 +15,7 @@ public class Zoom extends Module { public Zoom() { super( - new ModuleDetails("Zoom", "zoom") + new FeatureDetails("Zoom", "zoom") .description("Allows you to zoom in for a closer view") .tags("Camera", "Utility") .version("0.1.0"), diff --git a/src/main/java/org/saturnclient/modules/interfaces/ArmorDisplayInterface.java b/src/main/java/org/saturnclient/feature/interfaces/ArmorDisplayInterface.java similarity index 90% rename from src/main/java/org/saturnclient/modules/interfaces/ArmorDisplayInterface.java rename to src/main/java/org/saturnclient/feature/interfaces/ArmorDisplayInterface.java index c3de75b..597c9ad 100644 --- a/src/main/java/org/saturnclient/modules/interfaces/ArmorDisplayInterface.java +++ b/src/main/java/org/saturnclient/feature/interfaces/ArmorDisplayInterface.java @@ -1,4 +1,4 @@ -package org.saturnclient.modules.interfaces; +package org.saturnclient.feature.interfaces; import org.saturnclient.common.ref.game.ItemStackRef; diff --git a/src/main/java/org/saturnclient/modules/interfaces/AutoSprintInterface.java b/src/main/java/org/saturnclient/feature/interfaces/AutoSprintInterface.java similarity index 86% rename from src/main/java/org/saturnclient/modules/interfaces/AutoSprintInterface.java rename to src/main/java/org/saturnclient/feature/interfaces/AutoSprintInterface.java index 58448b9..d3f23a6 100644 --- a/src/main/java/org/saturnclient/modules/interfaces/AutoSprintInterface.java +++ b/src/main/java/org/saturnclient/feature/interfaces/AutoSprintInterface.java @@ -1,4 +1,4 @@ -package org.saturnclient.modules.interfaces; +package org.saturnclient.feature.interfaces; public interface AutoSprintInterface { diff --git a/src/main/java/org/saturnclient/modules/interfaces/CoordinatesInterface.java b/src/main/java/org/saturnclient/feature/interfaces/CoordinatesInterface.java similarity index 71% rename from src/main/java/org/saturnclient/modules/interfaces/CoordinatesInterface.java rename to src/main/java/org/saturnclient/feature/interfaces/CoordinatesInterface.java index c144f1a..8e562c8 100644 --- a/src/main/java/org/saturnclient/modules/interfaces/CoordinatesInterface.java +++ b/src/main/java/org/saturnclient/feature/interfaces/CoordinatesInterface.java @@ -1,4 +1,4 @@ -package org.saturnclient.modules.interfaces; +package org.saturnclient.feature.interfaces; public interface CoordinatesInterface { diff --git a/src/main/java/org/saturnclient/modules/interfaces/CrosshairInterface.java b/src/main/java/org/saturnclient/feature/interfaces/CrosshairInterface.java similarity index 64% rename from src/main/java/org/saturnclient/modules/interfaces/CrosshairInterface.java rename to src/main/java/org/saturnclient/feature/interfaces/CrosshairInterface.java index e658b64..bcc784c 100644 --- a/src/main/java/org/saturnclient/modules/interfaces/CrosshairInterface.java +++ b/src/main/java/org/saturnclient/feature/interfaces/CrosshairInterface.java @@ -1,4 +1,4 @@ -package org.saturnclient.modules.interfaces; +package org.saturnclient.feature.interfaces; public interface CrosshairInterface { diff --git a/src/main/java/org/saturnclient/modules/interfaces/DayCounterInterface.java b/src/main/java/org/saturnclient/feature/interfaces/DayCounterInterface.java similarity index 57% rename from src/main/java/org/saturnclient/modules/interfaces/DayCounterInterface.java rename to src/main/java/org/saturnclient/feature/interfaces/DayCounterInterface.java index 5b2c37f..59764d3 100644 --- a/src/main/java/org/saturnclient/modules/interfaces/DayCounterInterface.java +++ b/src/main/java/org/saturnclient/feature/interfaces/DayCounterInterface.java @@ -1,4 +1,4 @@ -package org.saturnclient.modules.interfaces; +package org.saturnclient.feature.interfaces; public interface DayCounterInterface { diff --git a/src/main/java/org/saturnclient/modules/interfaces/FpsInterface.java b/src/main/java/org/saturnclient/feature/interfaces/FpsInterface.java similarity index 54% rename from src/main/java/org/saturnclient/modules/interfaces/FpsInterface.java rename to src/main/java/org/saturnclient/feature/interfaces/FpsInterface.java index b16f2e7..637d152 100644 --- a/src/main/java/org/saturnclient/modules/interfaces/FpsInterface.java +++ b/src/main/java/org/saturnclient/feature/interfaces/FpsInterface.java @@ -1,4 +1,4 @@ -package org.saturnclient.modules.interfaces; +package org.saturnclient.feature.interfaces; public interface FpsInterface { diff --git a/src/main/java/org/saturnclient/modules/interfaces/FreelookInterface.java b/src/main/java/org/saturnclient/feature/interfaces/FreelookInterface.java similarity index 74% rename from src/main/java/org/saturnclient/modules/interfaces/FreelookInterface.java rename to src/main/java/org/saturnclient/feature/interfaces/FreelookInterface.java index 67f0814..d6eaf60 100644 --- a/src/main/java/org/saturnclient/modules/interfaces/FreelookInterface.java +++ b/src/main/java/org/saturnclient/feature/interfaces/FreelookInterface.java @@ -1,4 +1,4 @@ -package org.saturnclient.modules.interfaces; +package org.saturnclient.feature.interfaces; public interface FreelookInterface { diff --git a/src/main/java/org/saturnclient/modules/interfaces/HealthDisplayInterface.java b/src/main/java/org/saturnclient/feature/interfaces/HealthDisplayInterface.java similarity index 62% rename from src/main/java/org/saturnclient/modules/interfaces/HealthDisplayInterface.java rename to src/main/java/org/saturnclient/feature/interfaces/HealthDisplayInterface.java index cb8d20f..a846062 100644 --- a/src/main/java/org/saturnclient/modules/interfaces/HealthDisplayInterface.java +++ b/src/main/java/org/saturnclient/feature/interfaces/HealthDisplayInterface.java @@ -1,4 +1,4 @@ -package org.saturnclient.modules.interfaces; +package org.saturnclient.feature.interfaces; public interface HealthDisplayInterface { diff --git a/src/main/java/org/saturnclient/modules/interfaces/KeystrokesInterface.java b/src/main/java/org/saturnclient/feature/interfaces/KeystrokesInterface.java similarity index 84% rename from src/main/java/org/saturnclient/modules/interfaces/KeystrokesInterface.java rename to src/main/java/org/saturnclient/feature/interfaces/KeystrokesInterface.java index 5c220ef..3601cf1 100644 --- a/src/main/java/org/saturnclient/modules/interfaces/KeystrokesInterface.java +++ b/src/main/java/org/saturnclient/feature/interfaces/KeystrokesInterface.java @@ -1,4 +1,4 @@ -package org.saturnclient.modules.interfaces; +package org.saturnclient.feature.interfaces; public interface KeystrokesInterface { diff --git a/src/main/java/org/saturnclient/modules/interfaces/NametagsInterface.java b/src/main/java/org/saturnclient/feature/interfaces/NametagsInterface.java similarity index 87% rename from src/main/java/org/saturnclient/modules/interfaces/NametagsInterface.java rename to src/main/java/org/saturnclient/feature/interfaces/NametagsInterface.java index 5834508..b3f8249 100644 --- a/src/main/java/org/saturnclient/modules/interfaces/NametagsInterface.java +++ b/src/main/java/org/saturnclient/feature/interfaces/NametagsInterface.java @@ -1,4 +1,4 @@ -package org.saturnclient.modules.interfaces; +package org.saturnclient.feature.interfaces; public interface NametagsInterface { diff --git a/src/main/java/org/saturnclient/modules/interfaces/PingInterface.java b/src/main/java/org/saturnclient/feature/interfaces/PingInterface.java similarity index 71% rename from src/main/java/org/saturnclient/modules/interfaces/PingInterface.java rename to src/main/java/org/saturnclient/feature/interfaces/PingInterface.java index 2a93473..2423bf5 100644 --- a/src/main/java/org/saturnclient/modules/interfaces/PingInterface.java +++ b/src/main/java/org/saturnclient/feature/interfaces/PingInterface.java @@ -1,4 +1,4 @@ -package org.saturnclient.modules.interfaces; +package org.saturnclient.feature.interfaces; public interface PingInterface { diff --git a/src/main/java/org/saturnclient/modules/interfaces/SpeedometerInterface.java b/src/main/java/org/saturnclient/feature/interfaces/SpeedometerInterface.java similarity index 90% rename from src/main/java/org/saturnclient/modules/interfaces/SpeedometerInterface.java rename to src/main/java/org/saturnclient/feature/interfaces/SpeedometerInterface.java index da896bd..9ebde2f 100644 --- a/src/main/java/org/saturnclient/modules/interfaces/SpeedometerInterface.java +++ b/src/main/java/org/saturnclient/feature/interfaces/SpeedometerInterface.java @@ -1,4 +1,4 @@ -package org.saturnclient.modules.interfaces; +package org.saturnclient.feature.interfaces; public interface SpeedometerInterface { diff --git a/src/main/java/org/saturnclient/modules/interfaces/StatusEffectsInterface.java b/src/main/java/org/saturnclient/feature/interfaces/StatusEffectsInterface.java similarity index 96% rename from src/main/java/org/saturnclient/modules/interfaces/StatusEffectsInterface.java rename to src/main/java/org/saturnclient/feature/interfaces/StatusEffectsInterface.java index f341fc5..4e4728e 100644 --- a/src/main/java/org/saturnclient/modules/interfaces/StatusEffectsInterface.java +++ b/src/main/java/org/saturnclient/feature/interfaces/StatusEffectsInterface.java @@ -1,4 +1,4 @@ -package org.saturnclient.modules.interfaces; +package org.saturnclient.feature.interfaces; import java.util.List; diff --git a/src/main/java/org/saturnclient/ui/components/SaturnModule.java b/src/main/java/org/saturnclient/ui/components/SaturnModule.java index e667ef2..8034270 100644 --- a/src/main/java/org/saturnclient/ui/components/SaturnModule.java +++ b/src/main/java/org/saturnclient/ui/components/SaturnModule.java @@ -1,8 +1,8 @@ package org.saturnclient.ui.components; -import org.saturnclient.modules.Module; import org.saturnclient.common.provider.Providers; import org.saturnclient.config.Theme; +import org.saturnclient.feature.Feature; import org.saturnclient.ui.Element; import org.saturnclient.ui.ElementContext; import org.saturnclient.ui.RenderScope; @@ -13,149 +13,149 @@ import org.saturnclient.ui.screens.ConfigEditor; public class SaturnModule extends Element { - private final Module mod; + private final Feature mod; - static int p = 10; // padding - static int s = 14; // settings icon size - static int expand = 5; // settings icon click area + static int p = 10; // padding + static int s = 14; // settings icon size + static int expand = 5; // settings icon click area - public SaturnModule(Module mod) { - this.mod = mod; - this.width = 160; - this.height = 50; - } - - @Override - public void render(RenderScope renderScope, ElementContext ctx) { - boolean hovered = ctx.isHovering(); - boolean enabled = mod.isEnabled(); - - int iconX = width - s - p; - int iconY = height - s - p; - - boolean settingsHover = ctx.isHovering( - getSettingsX(), - getSettingsY(), - getSettingsHitBox(), - getSettingsHitBox()); - - // Resolve theme colors - int bgColor = Theme.PRIMARY.value; - int fgColor = hovered && !settingsHover ? Theme.ACCENT.value : Theme.PRIMARY_FG.value; - - int iconBg = enabled ? Theme.ACCENT.value : Theme.PRIMARY.value; - int iconFg = enabled ? Theme.ACCENT_FG.value : fgColor; - - int settingsColor = settingsHover - ? Theme.ACCENT.value - : Theme.withAlpha(160, fgColor); - - int h = height - (p * 2); - - // Main background - renderScope.drawRoundedRectangle( - 0, 0, - width, height, - Theme.WIDGET_RADIUS.value, - bgColor); - - // Icon background - renderScope.drawRoundedRectangle( - p, p, - h, h, - Theme.WIDGET_RADIUS.value, - iconBg); - - // Icon - renderScope.drawTexture( - mod.getIconTexture(), - p + (p / 2), - p + (p / 2), - 0, 0, - h - p, - h - p, - iconFg); - - // Module name - renderScope.drawText( - 0.6f, - mod.getName(), - p + h + 4, - p + 1, - Theme.FONT.value, - fgColor); - - // Version (right aligned) - String version = mod.getVersion(); - int versionWidth = (int) (Fonts.getWidth(version, Theme.FONT.value) * 0.35f); - - renderScope.drawText( - 0.35f, - version, - width - p - versionWidth, - p + 1, - Theme.FONT.value, - fgColor); - - // Tags - int xt = p + h + 4; - for (String tag : mod.getTags()) { - int tagWidth = (int) (Fonts.getWidth(tag, Theme.FONT.value) * 0.4f); - - renderScope.drawRoundedRectangle( - xt, - p + (h / 2), - tagWidth + 6, - 12, - 5, - Theme.ACCENT.value); - - renderScope.drawText( - 0.4f, - tag, - xt + 2, - p + (h / 2) + 3, - Theme.FONT.value, - Theme.ACCENT_FG.value); - - xt += tagWidth + 9; + public SaturnModule(Feature mod) { + this.mod = mod; + this.width = 160; + this.height = 50; } - // Settings icon - renderScope.drawTexture( - Textures.SETTINGS, - iconX, - iconY, - 0, 0, - s, s, - settingsColor); - } + @Override + public void render(RenderScope renderScope, ElementContext ctx) { + boolean hovered = ctx.isHovering(); + boolean enabled = mod.isEnabled(); - @Override - public void click(int mouseX, int mouseY) { - boolean settingsHover = Utils.isHovering( - mouseX - getSettingsX(), - mouseY - getSettingsY(), - getSettingsHitBox(), - getSettingsHitBox(), - 1.0f); + int iconX = width - s - p; + int iconY = height - s - p; - if (settingsHover) { - Providers.saturn.getClient().setScreen(new ConfigEditor(mod.getConfig())); - } else { - mod.setEnabled(!mod.isEnabled()); + boolean settingsHover = ctx.isHovering( + getSettingsX(), + getSettingsY(), + getSettingsHitBox(), + getSettingsHitBox()); + + // Resolve theme colors + int bgColor = Theme.PRIMARY.value; + int fgColor = hovered && !settingsHover ? Theme.ACCENT.value : Theme.PRIMARY_FG.value; + + int iconBg = enabled ? Theme.ACCENT.value : Theme.PRIMARY.value; + int iconFg = enabled ? Theme.ACCENT_FG.value : fgColor; + + int settingsColor = settingsHover + ? Theme.ACCENT.value + : Theme.withAlpha(160, fgColor); + + int h = height - (p * 2); + + // Main background + renderScope.drawRoundedRectangle( + 0, 0, + width, height, + Theme.WIDGET_RADIUS.value, + bgColor); + + // Icon background + renderScope.drawRoundedRectangle( + p, p, + h, h, + Theme.WIDGET_RADIUS.value, + iconBg); + + // Icon + renderScope.drawTexture( + mod.getIconTexture(), + p + (p / 2), + p + (p / 2), + 0, 0, + h - p, + h - p, + iconFg); + + // Module name + renderScope.drawText( + 0.6f, + mod.getName(), + p + h + 4, + p + 1, + Theme.FONT.value, + fgColor); + + // Version (right aligned) + String version = mod.getVersion(); + int versionWidth = (int) (Fonts.getWidth(version, Theme.FONT.value) * 0.35f); + + renderScope.drawText( + 0.35f, + version, + width - p - versionWidth, + p + 1, + Theme.FONT.value, + fgColor); + + // Tags + int xt = p + h + 4; + for (String tag : mod.getTags()) { + int tagWidth = (int) (Fonts.getWidth(tag, Theme.FONT.value) * 0.4f); + + renderScope.drawRoundedRectangle( + xt, + p + (h / 2), + tagWidth + 6, + 12, + 5, + Theme.ACCENT.value); + + renderScope.drawText( + 0.4f, + tag, + xt + 2, + p + (h / 2) + 3, + Theme.FONT.value, + Theme.ACCENT_FG.value); + + xt += tagWidth + 9; + } + + // Settings icon + renderScope.drawTexture( + Textures.SETTINGS, + iconX, + iconY, + 0, 0, + s, s, + settingsColor); } - } - private int getSettingsX() { - return width - s - p - expand; - } + @Override + public void click(int mouseX, int mouseY) { + boolean settingsHover = Utils.isHovering( + mouseX - getSettingsX(), + mouseY - getSettingsY(), + getSettingsHitBox(), + getSettingsHitBox(), + 1.0f); - private int getSettingsY() { - return height - s - p - expand; - } + if (settingsHover) { + Providers.saturn.getClient().setScreen(new ConfigEditor(mod.getConfig())); + } else { + mod.setEnabled(!mod.isEnabled()); + } + } - private int getSettingsHitBox() { - return s + expand * 2; - } + private int getSettingsX() { + return width - s - p - expand; + } + + private int getSettingsY() { + return height - s - p - expand; + } + + private int getSettingsHitBox() { + return s + expand * 2; + } } \ No newline at end of file diff --git a/src/main/java/org/saturnclient/ui/screens/HudEditor.java b/src/main/java/org/saturnclient/ui/screens/HudEditor.java index ee99f0a..204d998 100644 --- a/src/main/java/org/saturnclient/ui/screens/HudEditor.java +++ b/src/main/java/org/saturnclient/ui/screens/HudEditor.java @@ -1,11 +1,11 @@ package org.saturnclient.ui.screens; -import org.saturnclient.modules.HudMod; -import org.saturnclient.modules.ModDimensions; -import org.saturnclient.modules.ModManager; -import org.saturnclient.modules.Module; import org.saturnclient.common.ref.render.MatrixStackRef; import org.saturnclient.config.manager.ConfigManager; +import org.saturnclient.feature.HudFeature; +import org.saturnclient.feature.FeatureLayout; +import org.saturnclient.feature.FeatureManager; +import org.saturnclient.feature.Feature; import org.saturnclient.ui.RenderScope; import org.saturnclient.ui.SaturnScreen; @@ -13,17 +13,17 @@ import java.util.ArrayList; import java.util.List; public class HudEditor extends SaturnScreen { - private final List hudMods = new ArrayList<>(); - private HudMod draggingMod = null; + private final List hudMods = new ArrayList<>(); + private HudFeature draggingMod = null; private boolean resizing = false; private int offsetX, offsetY; private static final int RESIZE_MARGIN = 3; public HudEditor() { super("HUD Editor"); - for (Module m : ModManager.ENABLED_MODS) { - if (m.isEnabled() && m instanceof HudMod) { - hudMods.add((HudMod) m); + for (Feature m : FeatureManager.ENABLED_MODS) { + if (m.isEnabled() && m instanceof HudFeature) { + hudMods.add((HudFeature) m); } } } @@ -32,8 +32,8 @@ public class HudEditor extends SaturnScreen { public boolean mouseClicked(double mouseX, double mouseY, int button) { if (button == 0) { for (int m = hudMods.size() - 1; m >= 0; m--) { - HudMod mod = hudMods.get(m); - ModDimensions dim = mod.getDimensions(); + HudFeature mod = hudMods.get(m); + FeatureLayout dim = mod.getDimensions(); // Check if clicking the corner for resizing if (isCorner(mouseX, mouseY, dim)) { @@ -69,7 +69,7 @@ public class HudEditor extends SaturnScreen { @Override public boolean mouseDragged(double mouseX, double mouseY, int button, double deltaX, double deltaY) { if (draggingMod != null) { - ModDimensions dim = draggingMod.getDimensions(); + FeatureLayout dim = draggingMod.getDimensions(); if (resizing) { // Scale based on cursor movement @@ -90,8 +90,8 @@ public class HudEditor extends SaturnScreen { @Override public void render(RenderScope renderScope, int mouseX, int mouseY, float delta, long elapsed) { - for (HudMod mod : hudMods) { - ModDimensions dim = mod.getDimensions(); + for (HudFeature mod : hudMods) { + FeatureLayout dim = mod.getDimensions(); MatrixStackRef matrices = renderScope.getMatrixStack(); matrices.push(); @@ -113,12 +113,12 @@ public class HudEditor extends SaturnScreen { } } - private boolean isInside(double mouseX, double mouseY, ModDimensions dim) { + private boolean isInside(double mouseX, double mouseY, FeatureLayout dim) { return mouseX >= dim.x.value && mouseX <= dim.x.value + (dim.width * dim.scale.value) && mouseY >= dim.y.value && mouseY <= dim.y.value + (dim.height * dim.scale.value); } - private boolean isCorner(double mouseX, double mouseY, ModDimensions dim) { + private boolean isCorner(double mouseX, double mouseY, FeatureLayout dim) { float rightX = dim.x.value + dim.width * dim.scale.value; float bottomY = dim.y.value + dim.height * dim.scale.value; diff --git a/src/main/java/org/saturnclient/ui/screens/ModMenu.java b/src/main/java/org/saturnclient/ui/screens/ModMenu.java index 2c7e38c..d9a5270 100644 --- a/src/main/java/org/saturnclient/ui/screens/ModMenu.java +++ b/src/main/java/org/saturnclient/ui/screens/ModMenu.java @@ -1,8 +1,8 @@ package org.saturnclient.ui.screens; -import org.saturnclient.modules.ModManager; -import org.saturnclient.modules.Module; import org.saturnclient.config.AnimationConfig; +import org.saturnclient.feature.FeatureManager; +import org.saturnclient.feature.Feature; import org.saturnclient.ui.SaturnScreen; import org.saturnclient.ui.anim.SlideFade; import org.saturnclient.ui.components.SaturnModule; @@ -29,7 +29,7 @@ public class ModMenu extends SaturnScreen { AnimationStagger moduleStagger = new AnimationStagger(AnimationConfig.modMenu); - for (Module mod : ModManager.MODS) { + for (Feature mod : FeatureManager.MODS) { moduleStagger.draw( new SaturnModule(mod) .position((160 + g) * col, (50 + g) * row)