From 3138f7ec626a37bdaf091beb3769aa6b461676ba Mon Sep 17 00:00:00 2001 From: Klesti Selimaj Date: Tue, 24 Mar 2026 11:48:04 +0100 Subject: [PATCH] Refactored Feature to Mod --- .../HudFeature.java => mod/HudMod.java} | 6 ++-- .../{feature/Feature.java => mod/Mod.java} | 10 +++--- .../FeatureLayout.java => mod/ModLayout.java} | 12 +++---- .../ModManager.java} | 12 +++---- .../FeatureDetails.java => mod/ModSpec.java} | 16 +++++----- .../mods}/ArmorDisplayFeature.java | 18 +++++------ .../mods}/AutoSprintFeature.java | 10 +++--- .../features => mod/mods}/ClockFeature.java | 18 +++++------ .../mods}/CoordinatesFeature.java | 18 +++++------ .../mods}/CrosshairFeature.java | 10 +++--- .../mods}/DayCounterFeature.java | 18 +++++------ .../features => mod/mods}/FpsFeature.java | 18 +++++------ .../mods}/FreelookFeature.java | 10 +++--- .../mods}/FullbrightFeature.java | 10 +++--- .../mods}/HealthDisplayFeature.java | 18 +++++------ .../mods}/KeystrokesFeature.java | 18 +++++------ .../mods}/NametagsFeature.java | 10 +++--- .../features => mod/mods}/NoFogFeature.java | 10 +++--- .../features => mod/mods}/PingFeature.java | 18 +++++------ .../mods}/SpeedometerFeature.java | 18 +++++------ .../mods}/StatusEffectsFeature.java | 18 +++++------ .../features => mod/mods}/TpsFeature.java | 18 +++++------ .../features => mod/mods}/ZoomFeature.java | 10 +++--- .../ui/components/HudModPreview.java | 10 +++--- .../ui/components/SaturnModule.java | 10 +++--- .../saturnclient/ui/screens/ConfigEditor.java | 10 +++--- .../saturnclient/ui/screens/HudEditor.java | 32 +++++++++---------- .../org/saturnclient/ui/screens/ModMenu.java | 6 ++-- 28 files changed, 196 insertions(+), 196 deletions(-) rename src/main/java/org/saturnclient/{feature/HudFeature.java => mod/HudMod.java} (56%) rename src/main/java/org/saturnclient/{feature/Feature.java => mod/Mod.java} (84%) rename src/main/java/org/saturnclient/{feature/FeatureLayout.java => mod/ModLayout.java} (84%) rename src/main/java/org/saturnclient/{feature/FeatureManager.java => mod/ModManager.java} (76%) rename src/main/java/org/saturnclient/{feature/FeatureDetails.java => mod/ModSpec.java} (57%) rename src/main/java/org/saturnclient/{feature/features => mod/mods}/ArmorDisplayFeature.java (88%) rename src/main/java/org/saturnclient/{feature/features => mod/mods}/AutoSprintFeature.java (86%) rename src/main/java/org/saturnclient/{feature/features => mod/mods}/ClockFeature.java (85%) rename src/main/java/org/saturnclient/{feature/features => mod/mods}/CoordinatesFeature.java (84%) rename src/main/java/org/saturnclient/{feature/features => mod/mods}/CrosshairFeature.java (87%) rename src/main/java/org/saturnclient/{feature/features => mod/mods}/DayCounterFeature.java (81%) rename src/main/java/org/saturnclient/{feature/features => mod/mods}/FpsFeature.java (80%) rename src/main/java/org/saturnclient/{feature/features => mod/mods}/FreelookFeature.java (92%) rename src/main/java/org/saturnclient/{feature/features => mod/mods}/FullbrightFeature.java (89%) rename src/main/java/org/saturnclient/{feature/features => mod/mods}/HealthDisplayFeature.java (84%) rename src/main/java/org/saturnclient/{feature/features => mod/mods}/KeystrokesFeature.java (92%) rename src/main/java/org/saturnclient/{feature/features => mod/mods}/NametagsFeature.java (96%) rename src/main/java/org/saturnclient/{feature/features => mod/mods}/NoFogFeature.java (83%) rename src/main/java/org/saturnclient/{feature/features => mod/mods}/PingFeature.java (79%) rename src/main/java/org/saturnclient/{feature/features => mod/mods}/SpeedometerFeature.java (87%) rename src/main/java/org/saturnclient/{feature/features => mod/mods}/StatusEffectsFeature.java (86%) rename src/main/java/org/saturnclient/{feature/features => mod/mods}/TpsFeature.java (90%) rename src/main/java/org/saturnclient/{feature/features => mod/mods}/ZoomFeature.java (91%) diff --git a/src/main/java/org/saturnclient/feature/HudFeature.java b/src/main/java/org/saturnclient/mod/HudMod.java similarity index 56% rename from src/main/java/org/saturnclient/feature/HudFeature.java rename to src/main/java/org/saturnclient/mod/HudMod.java index 5810736..8de8ea0 100644 --- a/src/main/java/org/saturnclient/feature/HudFeature.java +++ b/src/main/java/org/saturnclient/mod/HudMod.java @@ -1,9 +1,9 @@ -package org.saturnclient.feature; +package org.saturnclient.mod; import org.saturnclient.ui.RenderScope; -public interface HudFeature { - public FeatureLayout getDimensions(); +public interface HudMod { + public ModLayout getDimensions(); public void renderDummy(RenderScope scope); diff --git a/src/main/java/org/saturnclient/feature/Feature.java b/src/main/java/org/saturnclient/mod/Mod.java similarity index 84% rename from src/main/java/org/saturnclient/feature/Feature.java rename to src/main/java/org/saturnclient/mod/Mod.java index ed16e48..1c914c0 100644 --- a/src/main/java/org/saturnclient/feature/Feature.java +++ b/src/main/java/org/saturnclient/mod/Mod.java @@ -1,4 +1,4 @@ -package org.saturnclient.feature; +package org.saturnclient.mod; import org.saturnclient.common.ref.asset.IdentifierRef; import org.saturnclient.config.ConfigManager; @@ -6,11 +6,11 @@ import org.saturnclient.config.property.NamedProperty; import org.saturnclient.ui.RenderScope; import org.saturnclient.ui.resources.Textures; -public abstract class Feature { - private final FeatureDetails details; +public abstract class Mod { + private final ModSpec details; private final ConfigManager configManager; - public Feature(FeatureDetails details, NamedProperty... props) { + public Mod(ModSpec details, NamedProperty... props) { this.details = details; configManager = new ConfigManager(details.name); for (NamedProperty prop : props) { @@ -28,7 +28,7 @@ public abstract class Feature { public final void setEnabled(boolean e) { onEnabled(e); - FeatureManager.updateEnabledModules(); + ModManager.updateEnabledModules(); } public abstract void onEnabled(boolean e); diff --git a/src/main/java/org/saturnclient/feature/FeatureLayout.java b/src/main/java/org/saturnclient/mod/ModLayout.java similarity index 84% rename from src/main/java/org/saturnclient/feature/FeatureLayout.java rename to src/main/java/org/saturnclient/mod/ModLayout.java index b5b58f1..ab0c8b6 100644 --- a/src/main/java/org/saturnclient/feature/FeatureLayout.java +++ b/src/main/java/org/saturnclient/mod/ModLayout.java @@ -1,4 +1,4 @@ -package org.saturnclient.feature; +package org.saturnclient.mod; import java.util.Map; @@ -9,7 +9,7 @@ import org.saturnclient.config.property.FloatProperty; import org.saturnclient.config.property.IntProperty; import org.saturnclient.config.property.NamedProperty; -public class FeatureLayout { +public class ModLayout { public IntProperty x = Property.integer(0); public IntProperty y = Property.integer(0); public FloatProperty scale = Property.floatProp(1.0f); @@ -33,22 +33,22 @@ public class FeatureLayout { "Font", font)).named("In-Game Display"); } - public FeatureLayout() { + public ModLayout() { } - public FeatureLayout(int width, int height) { + public ModLayout(int width, int height) { this.width = width; this.height = height; } - public FeatureLayout(int x, int y, int width, int height) { + public ModLayout(int x, int y, int width, int height) { this.x.value = x; this.y.value = y; this.width = width; this.height = height; } - public FeatureLayout(int x, int y, int width, int height, float scale) { + public ModLayout(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/feature/FeatureManager.java b/src/main/java/org/saturnclient/mod/ModManager.java similarity index 76% rename from src/main/java/org/saturnclient/feature/FeatureManager.java rename to src/main/java/org/saturnclient/mod/ModManager.java index 35bf63f..d47923b 100644 --- a/src/main/java/org/saturnclient/feature/FeatureManager.java +++ b/src/main/java/org/saturnclient/mod/ModManager.java @@ -1,13 +1,13 @@ -package org.saturnclient.feature; +package org.saturnclient.mod; import java.util.ArrayList; import java.util.List; -import org.saturnclient.feature.features.*; +import org.saturnclient.mod.mods.*; -public class FeatureManager { - public static List ENABLED_MODS = new ArrayList<>(); - public static Feature[] MODS = { +public class ModManager { + public static List ENABLED_MODS = new ArrayList<>(); + public static Mod[] MODS = { new ArmorDisplayFeature(), new DayCounterFeature(), new KeystrokesFeature(), new StatusEffectsFeature(), new AutoSprintFeature(), new FpsFeature(), new NametagsFeature(), new TpsFeature(), new ClockFeature(), new FreelookFeature(), new NoFogFeature(), new ZoomFeature(), @@ -21,7 +21,7 @@ public class FeatureManager { public static synchronized void updateEnabledModules() { ENABLED_MODS.clear(); - for (Feature m : MODS) { + for (Mod m : MODS) { if (m.isEnabled()) { ENABLED_MODS.add(m); } diff --git a/src/main/java/org/saturnclient/feature/FeatureDetails.java b/src/main/java/org/saturnclient/mod/ModSpec.java similarity index 57% rename from src/main/java/org/saturnclient/feature/FeatureDetails.java rename to src/main/java/org/saturnclient/mod/ModSpec.java index 2ad64ad..7aa678b 100644 --- a/src/main/java/org/saturnclient/feature/FeatureDetails.java +++ b/src/main/java/org/saturnclient/mod/ModSpec.java @@ -1,38 +1,38 @@ -package org.saturnclient.feature; +package org.saturnclient.mod; -public class FeatureDetails { +public class ModSpec { public String name; public String namespace; public String description; public String version; public String[] tags = {}; - public FeatureDetails(String name, String namespace) { + public ModSpec(String name, String namespace) { this.name = name; this.namespace = namespace; } - public FeatureDetails name(String name) { + public ModSpec name(String name) { this.name = name; return this; } - public FeatureDetails namespace(String namespace) { + public ModSpec namespace(String namespace) { this.namespace = namespace; return this; } - public FeatureDetails description(String description) { + public ModSpec description(String description) { this.description = description; return this; } - public FeatureDetails version(String version) { + public ModSpec version(String version) { this.version = version; return this; } - public FeatureDetails tags(String... tags) { + public ModSpec tags(String... tags) { this.tags = tags; return this; } diff --git a/src/main/java/org/saturnclient/feature/features/ArmorDisplayFeature.java b/src/main/java/org/saturnclient/mod/mods/ArmorDisplayFeature.java similarity index 88% rename from src/main/java/org/saturnclient/feature/features/ArmorDisplayFeature.java rename to src/main/java/org/saturnclient/mod/mods/ArmorDisplayFeature.java index 3430a0d..36e2f67 100644 --- a/src/main/java/org/saturnclient/feature/features/ArmorDisplayFeature.java +++ b/src/main/java/org/saturnclient/mod/mods/ArmorDisplayFeature.java @@ -1,14 +1,14 @@ -package org.saturnclient.feature.features; +package org.saturnclient.mod.mods; import org.saturnclient.common.provider.Providers; import org.saturnclient.common.module.PlayerModule; import org.saturnclient.common.ref.game.ItemStackRef; import org.saturnclient.config.property.BoolProperty; import org.saturnclient.config.property.Property; -import org.saturnclient.feature.Feature; -import org.saturnclient.feature.FeatureDetails; -import org.saturnclient.feature.FeatureLayout; -import org.saturnclient.feature.HudFeature; +import org.saturnclient.mod.HudMod; +import org.saturnclient.mod.Mod; +import org.saturnclient.mod.ModLayout; +import org.saturnclient.mod.ModSpec; import org.saturnclient.ui.RenderScope; /** @@ -17,15 +17,15 @@ import org.saturnclient.ui.RenderScope; * * Engine access is provided exclusively through {@link ModuleProvider}. */ -public class ArmorDisplayFeature extends Feature implements HudFeature { +public class ArmorDisplayFeature extends Mod implements HudMod { private static final BoolProperty enabled = Property.bool(false); private static final BoolProperty useMainHand = Property.bool(true); - private static final FeatureLayout layout = new FeatureLayout(40, 75); + private static final ModLayout layout = new ModLayout(40, 75); public ArmorDisplayFeature() { super( - new FeatureDetails("Armor Display", "armor") + new ModSpec("Armor Display", "armor") .description("Displays armor durability") .version("v0.2.0") .tags("Utility"), @@ -107,7 +107,7 @@ public class ArmorDisplayFeature extends Feature implements HudFeature { // --------------------------------------------------------------- @Override - public FeatureLayout getDimensions() { + public ModLayout getDimensions() { return layout; } diff --git a/src/main/java/org/saturnclient/feature/features/AutoSprintFeature.java b/src/main/java/org/saturnclient/mod/mods/AutoSprintFeature.java similarity index 86% rename from src/main/java/org/saturnclient/feature/features/AutoSprintFeature.java rename to src/main/java/org/saturnclient/mod/mods/AutoSprintFeature.java index 6b0df81..e10542e 100644 --- a/src/main/java/org/saturnclient/feature/features/AutoSprintFeature.java +++ b/src/main/java/org/saturnclient/mod/mods/AutoSprintFeature.java @@ -1,24 +1,24 @@ -package org.saturnclient.feature.features; +package org.saturnclient.mod.mods; import org.saturnclient.common.provider.Providers; import org.saturnclient.config.property.BoolProperty; import org.saturnclient.config.property.Property; +import org.saturnclient.mod.Mod; +import org.saturnclient.mod.ModSpec; import org.saturnclient.common.module.NetworkModule; import org.saturnclient.common.module.PlayerModule; -import org.saturnclient.feature.Feature; -import org.saturnclient.feature.FeatureDetails; /** * AutoSprintFeature automatically enables sprinting whenever the * player moves forward and no sprint-blocking condition is active. */ -public class AutoSprintFeature extends Feature { +public class AutoSprintFeature extends Mod { private static final BoolProperty enabled = Property.bool(false); public AutoSprintFeature() { super( - new FeatureDetails("Auto Sprint", "sprint") + new ModSpec("Auto Sprint", "sprint") .description("Makes the player always sprint") .tags("Movement") .version("v0.2.0"), diff --git a/src/main/java/org/saturnclient/feature/features/ClockFeature.java b/src/main/java/org/saturnclient/mod/mods/ClockFeature.java similarity index 85% rename from src/main/java/org/saturnclient/feature/features/ClockFeature.java rename to src/main/java/org/saturnclient/mod/mods/ClockFeature.java index eec91ed..d249042 100644 --- a/src/main/java/org/saturnclient/feature/features/ClockFeature.java +++ b/src/main/java/org/saturnclient/mod/mods/ClockFeature.java @@ -1,4 +1,4 @@ -package org.saturnclient.feature.features; +package org.saturnclient.mod.mods; import java.time.LocalTime; import java.time.format.DateTimeFormatter; @@ -8,25 +8,25 @@ import org.saturnclient.ui.resources.Fonts; import org.saturnclient.config.property.BoolProperty; import org.saturnclient.config.property.Property; import org.saturnclient.config.property.SelectProperty; -import org.saturnclient.feature.Feature; -import org.saturnclient.feature.FeatureDetails; -import org.saturnclient.feature.FeatureLayout; -import org.saturnclient.feature.HudFeature; +import org.saturnclient.mod.HudMod; +import org.saturnclient.mod.Mod; +import org.saturnclient.mod.ModLayout; +import org.saturnclient.mod.ModSpec; /** * ClockFeature displays the real-world time as a HUD element. * No engine access is required; {@link LocalTime} is used directly. */ -public class ClockFeature extends Feature implements HudFeature { +public class ClockFeature extends Mod implements HudMod { private static final BoolProperty enabled = Property.bool(false); private static final SelectProperty format = Property.select(0, "24 hour", "12 hour"); private static final BoolProperty showSeconds = Property.bool(false); - private static final FeatureLayout layout = new FeatureLayout(60, Fonts.getHeight()); + private static final ModLayout layout = new ModLayout(60, Fonts.getHeight()); public ClockFeature() { super( - new FeatureDetails("Clock", "clock") + new ModSpec("Clock", "clock") .description("Displays the current real-world time") .version("v0.2.0") .tags("Utility"), @@ -78,7 +78,7 @@ public class ClockFeature extends Feature implements HudFeature { // --------------------------------------------------------------- @Override - public FeatureLayout getDimensions() { + public ModLayout getDimensions() { return layout; } diff --git a/src/main/java/org/saturnclient/feature/features/CoordinatesFeature.java b/src/main/java/org/saturnclient/mod/mods/CoordinatesFeature.java similarity index 84% rename from src/main/java/org/saturnclient/feature/features/CoordinatesFeature.java rename to src/main/java/org/saturnclient/mod/mods/CoordinatesFeature.java index f18d483..d69ebe4 100644 --- a/src/main/java/org/saturnclient/feature/features/CoordinatesFeature.java +++ b/src/main/java/org/saturnclient/mod/mods/CoordinatesFeature.java @@ -1,21 +1,21 @@ -package org.saturnclient.feature.features; +package org.saturnclient.mod.mods; import org.saturnclient.common.provider.Providers; import org.saturnclient.config.property.BoolProperty; import org.saturnclient.config.property.Property; import org.saturnclient.config.property.SelectProperty; +import org.saturnclient.mod.HudMod; +import org.saturnclient.mod.Mod; +import org.saturnclient.mod.ModLayout; +import org.saturnclient.mod.ModSpec; import org.saturnclient.ui.RenderScope; import org.saturnclient.ui.resources.Fonts; -import org.saturnclient.feature.Feature; -import org.saturnclient.feature.FeatureDetails; -import org.saturnclient.feature.FeatureLayout; -import org.saturnclient.feature.HudFeature; /** * CoordinatesFeature displays the player's current XYZ position as a * HUD element with multiple configurable display formats. */ -public class CoordinatesFeature extends Feature implements HudFeature { +public class CoordinatesFeature extends Mod implements HudMod { private static final BoolProperty enabled = Property.bool(false); private static final SelectProperty displayMethod = Property.select(0, @@ -23,11 +23,11 @@ public class CoordinatesFeature extends Feature implements HudFeature { "Flat annotated", "Newline", "Newline annotated"); - private static final FeatureLayout layout = new FeatureLayout(40, 18); + private static final ModLayout layout = new ModLayout(40, 18); public CoordinatesFeature() { super( - new FeatureDetails("Coordinates", "coords") + new ModSpec("Coordinates", "coords") .description("Displays your current coordinates") .version("v0.2.0") .tags("Utility"), @@ -78,7 +78,7 @@ public class CoordinatesFeature extends Feature implements HudFeature { // --------------------------------------------------------------- @Override - public FeatureLayout getDimensions() { + public ModLayout getDimensions() { return layout; } diff --git a/src/main/java/org/saturnclient/feature/features/CrosshairFeature.java b/src/main/java/org/saturnclient/mod/mods/CrosshairFeature.java similarity index 87% rename from src/main/java/org/saturnclient/feature/features/CrosshairFeature.java rename to src/main/java/org/saturnclient/mod/mods/CrosshairFeature.java index ac256ac..e935158 100644 --- a/src/main/java/org/saturnclient/feature/features/CrosshairFeature.java +++ b/src/main/java/org/saturnclient/mod/mods/CrosshairFeature.java @@ -1,19 +1,19 @@ -package org.saturnclient.feature.features; +package org.saturnclient.mod.mods; import org.saturnclient.common.provider.Providers; import org.saturnclient.config.property.BoolProperty; import org.saturnclient.config.property.Property; +import org.saturnclient.mod.Mod; +import org.saturnclient.mod.ModSpec; import org.saturnclient.common.module.RenderModule; import org.saturnclient.ui.RenderScope; import org.saturnclient.ui.resources.Textures; -import org.saturnclient.feature.Feature; -import org.saturnclient.feature.FeatureDetails; /** * CrosshairFeature renders an alternative crosshair texture when the * player is aiming at a living entity. */ -public class CrosshairFeature extends Feature { +public class CrosshairFeature extends Mod { public static final BoolProperty enabled = Property.bool(false); @@ -21,7 +21,7 @@ public class CrosshairFeature extends Feature { public CrosshairFeature() { super( - new FeatureDetails("Crosshair", "crosshair") + new ModSpec("Crosshair", "crosshair") .description("Changes the crosshair when aiming at an entity") .tags("Visuals", "Utility") .version("v0.2.0"), diff --git a/src/main/java/org/saturnclient/feature/features/DayCounterFeature.java b/src/main/java/org/saturnclient/mod/mods/DayCounterFeature.java similarity index 81% rename from src/main/java/org/saturnclient/feature/features/DayCounterFeature.java rename to src/main/java/org/saturnclient/mod/mods/DayCounterFeature.java index 38a58f7..6c0b321 100644 --- a/src/main/java/org/saturnclient/feature/features/DayCounterFeature.java +++ b/src/main/java/org/saturnclient/mod/mods/DayCounterFeature.java @@ -1,28 +1,28 @@ -package org.saturnclient.feature.features; +package org.saturnclient.mod.mods; import org.saturnclient.common.module.WorldModule; import org.saturnclient.common.provider.Providers; import org.saturnclient.config.property.BoolProperty; import org.saturnclient.config.property.Property; +import org.saturnclient.mod.HudMod; +import org.saturnclient.mod.Mod; +import org.saturnclient.mod.ModLayout; +import org.saturnclient.mod.ModSpec; import org.saturnclient.ui.RenderScope; import org.saturnclient.ui.resources.Fonts; -import org.saturnclient.feature.Feature; -import org.saturnclient.feature.FeatureDetails; -import org.saturnclient.feature.FeatureLayout; -import org.saturnclient.feature.HudFeature; /** * DayCounterFeature shows how many in-game days have elapsed. * Day count is derived from the world age via {@link WorldModule}. */ -public class DayCounterFeature extends Feature implements HudFeature { +public class DayCounterFeature extends Mod implements HudMod { private static final BoolProperty enabled = Property.bool(false); - private static final FeatureLayout layout = new FeatureLayout(40, 18); + private static final ModLayout layout = new ModLayout(40, 18); public DayCounterFeature() { super( - new FeatureDetails("Day Counter", "day") + new ModSpec("Day Counter", "day") .description("Displays the number of in-game days elapsed") .version("v0.2.0") .tags("Utility"), @@ -61,7 +61,7 @@ public class DayCounterFeature extends Feature implements HudFeature { // --------------------------------------------------------------- @Override - public FeatureLayout getDimensions() { + public ModLayout getDimensions() { return layout; } diff --git a/src/main/java/org/saturnclient/feature/features/FpsFeature.java b/src/main/java/org/saturnclient/mod/mods/FpsFeature.java similarity index 80% rename from src/main/java/org/saturnclient/feature/features/FpsFeature.java rename to src/main/java/org/saturnclient/mod/mods/FpsFeature.java index 0cb85dd..0b0b093 100644 --- a/src/main/java/org/saturnclient/feature/features/FpsFeature.java +++ b/src/main/java/org/saturnclient/mod/mods/FpsFeature.java @@ -1,28 +1,28 @@ -package org.saturnclient.feature.features; +package org.saturnclient.mod.mods; import org.saturnclient.common.module.RenderModule; import org.saturnclient.common.provider.Providers; import org.saturnclient.config.property.BoolProperty; import org.saturnclient.config.property.Property; +import org.saturnclient.mod.HudMod; +import org.saturnclient.mod.Mod; +import org.saturnclient.mod.ModLayout; +import org.saturnclient.mod.ModSpec; import org.saturnclient.ui.RenderScope; import org.saturnclient.ui.resources.Fonts; -import org.saturnclient.feature.Feature; -import org.saturnclient.feature.FeatureDetails; -import org.saturnclient.feature.FeatureLayout; -import org.saturnclient.feature.HudFeature; /** * FpsFeature displays the current frames-per-second as a HUD element. * FPS is obtained from {@link RenderModule} rather than cached in the feature. */ -public class FpsFeature extends Feature implements HudFeature { +public class FpsFeature extends Mod implements HudMod { private static final BoolProperty enabled = Property.bool(false); - private static final FeatureLayout layout = new FeatureLayout(60, Fonts.getHeight()); + private static final ModLayout layout = new ModLayout(60, Fonts.getHeight()); public FpsFeature() { super( - new FeatureDetails("FPS Display", "fps") + new ModSpec("FPS Display", "fps") .description("Displays current FPS") .version("v0.2.0") .tags("Utility"), @@ -59,7 +59,7 @@ public class FpsFeature extends Feature implements HudFeature { // --------------------------------------------------------------- @Override - public FeatureLayout getDimensions() { + public ModLayout getDimensions() { return layout; } diff --git a/src/main/java/org/saturnclient/feature/features/FreelookFeature.java b/src/main/java/org/saturnclient/mod/mods/FreelookFeature.java similarity index 92% rename from src/main/java/org/saturnclient/feature/features/FreelookFeature.java rename to src/main/java/org/saturnclient/mod/mods/FreelookFeature.java index 7040473..9af6ee4 100644 --- a/src/main/java/org/saturnclient/feature/features/FreelookFeature.java +++ b/src/main/java/org/saturnclient/mod/mods/FreelookFeature.java @@ -1,13 +1,13 @@ -package org.saturnclient.feature.features; +package org.saturnclient.mod.mods; import org.saturnclient.common.provider.Providers; import org.saturnclient.config.property.BoolProperty; import org.saturnclient.config.property.KeybindingProperty; import org.saturnclient.config.property.Property; +import org.saturnclient.mod.Mod; +import org.saturnclient.mod.ModSpec; import org.saturnclient.common.module.RenderModule; import org.saturnclient.common.provider.GLFWProvider; -import org.saturnclient.feature.Feature; -import org.saturnclient.feature.FeatureDetails; /** * FreelookFeature lets the player look around freely (in third-person) @@ -16,7 +16,7 @@ import org.saturnclient.feature.FeatureDetails; * Camera perspective is controlled through {@link RenderModule} so * that the feature itself contains no direct Minecraft API calls. */ -public class FreelookFeature extends Feature { +public class FreelookFeature extends Mod { private static final BoolProperty enabled = Property.bool(false); private static final BoolProperty toggle = Property.bool(true); @@ -28,7 +28,7 @@ public class FreelookFeature extends Feature { public FreelookFeature() { super( - new FeatureDetails("Freelook", "freelook") + new ModSpec("Freelook", "freelook") .description("Look around freely without moving your character") .tags("Movement", "Camera") .version("v0.2.0"), diff --git a/src/main/java/org/saturnclient/feature/features/FullbrightFeature.java b/src/main/java/org/saturnclient/mod/mods/FullbrightFeature.java similarity index 89% rename from src/main/java/org/saturnclient/feature/features/FullbrightFeature.java rename to src/main/java/org/saturnclient/mod/mods/FullbrightFeature.java index 9150004..ed1bd5d 100644 --- a/src/main/java/org/saturnclient/feature/features/FullbrightFeature.java +++ b/src/main/java/org/saturnclient/mod/mods/FullbrightFeature.java @@ -1,10 +1,10 @@ -package org.saturnclient.feature.features; +package org.saturnclient.mod.mods; import org.saturnclient.config.property.BoolProperty; import org.saturnclient.config.property.IntProperty; import org.saturnclient.config.property.Property; -import org.saturnclient.feature.Feature; -import org.saturnclient.feature.FeatureDetails; +import org.saturnclient.mod.Mod; +import org.saturnclient.mod.ModSpec; /** * FullbrightFeature overrides the game's gamma/brightness to let the @@ -16,14 +16,14 @@ import org.saturnclient.feature.FeatureDetails; * No ModuleProvider is needed — this feature has no per-tick engine * interaction; the mixin polls the static helpers directly. */ -public class FullbrightFeature extends Feature { +public class FullbrightFeature extends Mod { private static final BoolProperty enabled = Property.bool(false); private static final IntProperty brightness = Property.integer(100); public FullbrightFeature() { super( - new FeatureDetails("Fullbright", "fullbright") + new ModSpec("Fullbright", "fullbright") .description("Allows you to see in the dark") .tags("Camera") .version("v0.2.0"), diff --git a/src/main/java/org/saturnclient/feature/features/HealthDisplayFeature.java b/src/main/java/org/saturnclient/mod/mods/HealthDisplayFeature.java similarity index 84% rename from src/main/java/org/saturnclient/feature/features/HealthDisplayFeature.java rename to src/main/java/org/saturnclient/mod/mods/HealthDisplayFeature.java index b9807ca..c44b300 100644 --- a/src/main/java/org/saturnclient/feature/features/HealthDisplayFeature.java +++ b/src/main/java/org/saturnclient/mod/mods/HealthDisplayFeature.java @@ -1,31 +1,31 @@ -package org.saturnclient.feature.features; +package org.saturnclient.mod.mods; import org.saturnclient.common.provider.Providers; import org.saturnclient.config.property.BoolProperty; import org.saturnclient.config.property.Property; import org.saturnclient.config.property.SelectProperty; +import org.saturnclient.mod.HudMod; +import org.saturnclient.mod.Mod; +import org.saturnclient.mod.ModLayout; +import org.saturnclient.mod.ModSpec; import org.saturnclient.ui.RenderScope; import org.saturnclient.ui.resources.Fonts; -import org.saturnclient.feature.Feature; -import org.saturnclient.feature.FeatureDetails; -import org.saturnclient.feature.FeatureLayout; -import org.saturnclient.feature.HudFeature; /** * HealthDisplayFeature renders the player's current health as a HUD * element, with configurable display modes (raw health vs. hearts) and * decimal precision. */ -public class HealthDisplayFeature extends Feature implements HudFeature { +public class HealthDisplayFeature extends Mod implements HudMod { private static final BoolProperty enabled = Property.bool(false); private static final SelectProperty displayMode = Property.select(0, "Health", "Hearts"); private static final SelectProperty decimals = Property.select(0, "0", "1", "2"); - private static final FeatureLayout layout = new FeatureLayout(40, 18); + private static final ModLayout layout = new ModLayout(40, 18); public HealthDisplayFeature() { super( - new FeatureDetails("Health Display", "health") + new ModSpec("Health Display", "health") .description("Displays your current health") .version("v0.2.0") .tags("Utility"), @@ -75,7 +75,7 @@ public class HealthDisplayFeature extends Feature implements HudFeature { // --------------------------------------------------------------- @Override - public FeatureLayout getDimensions() { + public ModLayout getDimensions() { return layout; } diff --git a/src/main/java/org/saturnclient/feature/features/KeystrokesFeature.java b/src/main/java/org/saturnclient/mod/mods/KeystrokesFeature.java similarity index 92% rename from src/main/java/org/saturnclient/feature/features/KeystrokesFeature.java rename to src/main/java/org/saturnclient/mod/mods/KeystrokesFeature.java index f4fcaa1..1abb1f7 100644 --- a/src/main/java/org/saturnclient/feature/features/KeystrokesFeature.java +++ b/src/main/java/org/saturnclient/mod/mods/KeystrokesFeature.java @@ -1,21 +1,21 @@ -package org.saturnclient.feature.features; +package org.saturnclient.mod.mods; import org.saturnclient.common.provider.Providers; import org.saturnclient.config.property.BoolProperty; import org.saturnclient.config.property.ColorProperty; import org.saturnclient.config.property.Property; +import org.saturnclient.mod.HudMod; +import org.saturnclient.mod.Mod; +import org.saturnclient.mod.ModLayout; +import org.saturnclient.mod.ModSpec; import org.saturnclient.common.module.PlayerModule; import org.saturnclient.ui.RenderScope; -import org.saturnclient.feature.Feature; -import org.saturnclient.feature.FeatureDetails; -import org.saturnclient.feature.FeatureLayout; -import org.saturnclient.feature.HudFeature; /** * KeystrokesFeature renders the WASD / mouse / space key states as an * on-screen overlay. */ -public class KeystrokesFeature extends Feature implements HudFeature { +public class KeystrokesFeature extends Mod implements HudMod { // --------------------------------------------------------------- // Configuration @@ -28,7 +28,7 @@ public class KeystrokesFeature extends Feature implements HudFeature { private static final ColorProperty clickBg = Property.color(0xFFCCCCCC); private static final ColorProperty clickFg = Property.color(0xFFFFFFFF); - private static final FeatureLayout layout = new FeatureLayout(78, 54); + private static final ModLayout layout = new ModLayout(78, 54); // --------------------------------------------------------------- // Layout constants @@ -48,7 +48,7 @@ public class KeystrokesFeature extends Feature implements HudFeature { public KeystrokesFeature() { super( - new FeatureDetails("Keystrokes", "keystrokes") + new ModSpec("Keystrokes", "keystrokes") .description("Displays movement keystrokes") .version("v0.2.0") .tags("Utility"), @@ -89,7 +89,7 @@ public class KeystrokesFeature extends Feature implements HudFeature { } @Override - public FeatureLayout getDimensions() { + public ModLayout getDimensions() { return layout; } diff --git a/src/main/java/org/saturnclient/feature/features/NametagsFeature.java b/src/main/java/org/saturnclient/mod/mods/NametagsFeature.java similarity index 96% rename from src/main/java/org/saturnclient/feature/features/NametagsFeature.java rename to src/main/java/org/saturnclient/mod/mods/NametagsFeature.java index b10fe1b..8b2be88 100644 --- a/src/main/java/org/saturnclient/feature/features/NametagsFeature.java +++ b/src/main/java/org/saturnclient/mod/mods/NametagsFeature.java @@ -1,11 +1,11 @@ -package org.saturnclient.feature.features; +package org.saturnclient.mod.mods; import org.saturnclient.common.module.EntityModule; import org.saturnclient.config.property.BoolProperty; import org.saturnclient.config.property.Property; import org.saturnclient.config.property.SelectProperty; -import org.saturnclient.feature.Feature; -import org.saturnclient.feature.FeatureDetails; +import org.saturnclient.mod.Mod; +import org.saturnclient.mod.ModSpec; /** * NametagsFeature modifies the nametags displayed above entities. @@ -18,7 +18,7 @@ import org.saturnclient.feature.FeatureDetails; * No ModuleProvider is required here because the mixin passes the * already-resolved {@link EntityModule.EntityState} directly. */ -public class NametagsFeature extends Feature { +public class NametagsFeature extends Mod { // --------------------------------------------------------------- // Configuration @@ -53,7 +53,7 @@ public class NametagsFeature extends Feature { public NametagsFeature() { super( - new FeatureDetails("Nametags", "nametags") + new ModSpec("Nametags", "nametags") .description("Allows you to modify entity nametags") .tags("Camera", "Utility") .version("v0.2.0"), diff --git a/src/main/java/org/saturnclient/feature/features/NoFogFeature.java b/src/main/java/org/saturnclient/mod/mods/NoFogFeature.java similarity index 83% rename from src/main/java/org/saturnclient/feature/features/NoFogFeature.java rename to src/main/java/org/saturnclient/mod/mods/NoFogFeature.java index 6ec122b..ffef354 100644 --- a/src/main/java/org/saturnclient/feature/features/NoFogFeature.java +++ b/src/main/java/org/saturnclient/mod/mods/NoFogFeature.java @@ -1,9 +1,9 @@ -package org.saturnclient.feature.features; +package org.saturnclient.mod.mods; import org.saturnclient.config.property.BoolProperty; import org.saturnclient.config.property.Property; -import org.saturnclient.feature.Feature; -import org.saturnclient.feature.FeatureDetails; +import org.saturnclient.mod.Mod; +import org.saturnclient.mod.ModSpec; /** * NoFogFeature suppresses distance fog and (optionally) liquid fog. @@ -12,13 +12,13 @@ import org.saturnclient.feature.FeatureDetails; * inside a mixin. This class owns the configuration and provides * static query methods the mixin calls. */ -public class NoFogFeature extends Feature { +public class NoFogFeature extends Mod { private static final BoolProperty enabled = Property.bool(false); public NoFogFeature() { super( - new FeatureDetails("No Fog", "nofog") + new ModSpec("No Fog", "nofog") .description("Stops fog from rendering") .tags("Camera") .version("v0.2.0"), diff --git a/src/main/java/org/saturnclient/feature/features/PingFeature.java b/src/main/java/org/saturnclient/mod/mods/PingFeature.java similarity index 79% rename from src/main/java/org/saturnclient/feature/features/PingFeature.java rename to src/main/java/org/saturnclient/mod/mods/PingFeature.java index 54df1cf..83c5c44 100644 --- a/src/main/java/org/saturnclient/feature/features/PingFeature.java +++ b/src/main/java/org/saturnclient/mod/mods/PingFeature.java @@ -1,27 +1,27 @@ -package org.saturnclient.feature.features; +package org.saturnclient.mod.mods; import org.saturnclient.common.provider.Providers; import org.saturnclient.config.property.BoolProperty; import org.saturnclient.config.property.Property; +import org.saturnclient.mod.HudMod; +import org.saturnclient.mod.Mod; +import org.saturnclient.mod.ModLayout; +import org.saturnclient.mod.ModSpec; import org.saturnclient.ui.RenderScope; import org.saturnclient.ui.resources.Fonts; -import org.saturnclient.feature.Feature; -import org.saturnclient.feature.FeatureDetails; -import org.saturnclient.feature.FeatureLayout; -import org.saturnclient.feature.HudFeature; /** * PingFeature displays the current server round-trip time in * milliseconds as a HUD element. */ -public class PingFeature extends Feature implements HudFeature { +public class PingFeature extends Mod implements HudMod { private static final BoolProperty enabled = Property.bool(false); - private static final FeatureLayout layout = new FeatureLayout(60, Fonts.getHeight()); + private static final ModLayout layout = new ModLayout(60, Fonts.getHeight()); public PingFeature() { super( - new FeatureDetails("Ping Display", "ping") + new ModSpec("Ping Display", "ping") .description("Displays ping to the server") .version("v0.2.0") .tags("Utility"), @@ -58,7 +58,7 @@ public class PingFeature extends Feature implements HudFeature { // --------------------------------------------------------------- @Override - public FeatureLayout getDimensions() { + public ModLayout getDimensions() { return layout; } diff --git a/src/main/java/org/saturnclient/feature/features/SpeedometerFeature.java b/src/main/java/org/saturnclient/mod/mods/SpeedometerFeature.java similarity index 87% rename from src/main/java/org/saturnclient/feature/features/SpeedometerFeature.java rename to src/main/java/org/saturnclient/mod/mods/SpeedometerFeature.java index cec2f65..9c69ea0 100644 --- a/src/main/java/org/saturnclient/feature/features/SpeedometerFeature.java +++ b/src/main/java/org/saturnclient/mod/mods/SpeedometerFeature.java @@ -1,34 +1,34 @@ -package org.saturnclient.feature.features; +package org.saturnclient.mod.mods; import org.saturnclient.common.provider.Providers; import org.saturnclient.config.property.BoolProperty; import org.saturnclient.config.property.Property; import org.saturnclient.config.property.SelectProperty; +import org.saturnclient.mod.HudMod; +import org.saturnclient.mod.Mod; +import org.saturnclient.mod.ModLayout; +import org.saturnclient.mod.ModSpec; import org.saturnclient.common.module.PlayerModule; import org.saturnclient.ui.RenderScope; import org.saturnclient.ui.resources.Fonts; -import org.saturnclient.feature.Feature; -import org.saturnclient.feature.FeatureDetails; -import org.saturnclient.feature.FeatureLayout; -import org.saturnclient.feature.HudFeature; /** * SpeedometerFeature displays the player's current movement speed as * a HUD element. Velocity data comes from {@link PlayerModule}. */ -public class SpeedometerFeature extends Feature implements HudFeature { +public class SpeedometerFeature extends Mod implements HudMod { private static final BoolProperty enabled = Property.bool(false); private static final SelectProperty axis = Property.select(1, "Absolute", "Horizontal", "Vertical"); private static final SelectProperty unitText = Property.select(0, "None", "Blocks/s", "blocks/s", "b/s"); private static final BoolProperty showLabel = Property.bool(true); - private static final FeatureLayout layout = new FeatureLayout(40, 18); + private static final ModLayout layout = new ModLayout(40, 18); private double cachedSpeed = 0.0; public SpeedometerFeature() { super( - new FeatureDetails("Speedometer", "speed") + new ModSpec("Speedometer", "speed") .description("Displays your current movement speed") .version("v0.2.0") .tags("Utility"), @@ -93,7 +93,7 @@ public class SpeedometerFeature extends Feature implements HudFeature { // --------------------------------------------------------------- @Override - public FeatureLayout getDimensions() { + public ModLayout getDimensions() { return layout; } diff --git a/src/main/java/org/saturnclient/feature/features/StatusEffectsFeature.java b/src/main/java/org/saturnclient/mod/mods/StatusEffectsFeature.java similarity index 86% rename from src/main/java/org/saturnclient/feature/features/StatusEffectsFeature.java rename to src/main/java/org/saturnclient/mod/mods/StatusEffectsFeature.java index 76e531e..bc4ab16 100644 --- a/src/main/java/org/saturnclient/feature/features/StatusEffectsFeature.java +++ b/src/main/java/org/saturnclient/mod/mods/StatusEffectsFeature.java @@ -1,4 +1,4 @@ -package org.saturnclient.feature.features; +package org.saturnclient.mod.mods; import java.util.List; @@ -7,11 +7,11 @@ import org.saturnclient.common.provider.Providers; import org.saturnclient.common.ref.game.EffectRef; import org.saturnclient.config.property.BoolProperty; import org.saturnclient.config.property.Property; +import org.saturnclient.mod.HudMod; +import org.saturnclient.mod.Mod; +import org.saturnclient.mod.ModLayout; +import org.saturnclient.mod.ModSpec; import org.saturnclient.ui.RenderScope; -import org.saturnclient.feature.Feature; -import org.saturnclient.feature.FeatureDetails; -import org.saturnclient.feature.FeatureLayout; -import org.saturnclient.feature.HudFeature; /** * StatusEffectsFeature displays the player's active potion effects as @@ -22,14 +22,14 @@ import org.saturnclient.feature.HudFeature; * Until that is wired up, the existing {@link StatusEffectsInterface} * bridge is used, accessed via {@link ModuleProvider}. */ -public class StatusEffectsFeature extends Feature implements HudFeature { +public class StatusEffectsFeature extends Mod implements HudMod { public static final BoolProperty enabled = Property.bool(false); - private static final FeatureLayout layout = new FeatureLayout(60, 0); + private static final ModLayout layout = new ModLayout(60, 0); public StatusEffectsFeature() { super( - new FeatureDetails("Status Effects", "effect") + new ModSpec("Status Effects", "effect") .description("Displays active status effects") .version("v0.2.0") .tags("Utility"), @@ -91,7 +91,7 @@ public class StatusEffectsFeature extends Feature implements HudFeature { // --------------------------------------------------------------- @Override - public FeatureLayout getDimensions() { + public ModLayout getDimensions() { return layout; } diff --git a/src/main/java/org/saturnclient/feature/features/TpsFeature.java b/src/main/java/org/saturnclient/mod/mods/TpsFeature.java similarity index 90% rename from src/main/java/org/saturnclient/feature/features/TpsFeature.java rename to src/main/java/org/saturnclient/mod/mods/TpsFeature.java index accf08c..2ae9c0d 100644 --- a/src/main/java/org/saturnclient/feature/features/TpsFeature.java +++ b/src/main/java/org/saturnclient/mod/mods/TpsFeature.java @@ -1,13 +1,13 @@ -package org.saturnclient.feature.features; +package org.saturnclient.mod.mods; import org.saturnclient.ui.RenderScope; import org.saturnclient.ui.resources.Fonts; import org.saturnclient.config.property.BoolProperty; import org.saturnclient.config.property.Property; -import org.saturnclient.feature.Feature; -import org.saturnclient.feature.FeatureDetails; -import org.saturnclient.feature.FeatureLayout; -import org.saturnclient.feature.HudFeature; +import org.saturnclient.mod.HudMod; +import org.saturnclient.mod.Mod; +import org.saturnclient.mod.ModLayout; +import org.saturnclient.mod.ModSpec; /** * TpsFeature estimates the server's ticks-per-second by measuring the @@ -18,10 +18,10 @@ import org.saturnclient.feature.HudFeature; * arrives. No ModuleProvider is required because there is no * per-frame polling of the engine. */ -public class TpsFeature extends Feature implements HudFeature { +public class TpsFeature extends Mod implements HudMod { private static final BoolProperty enabled = Property.bool(false); - private static final FeatureLayout layout = new FeatureLayout(60, Fonts.getHeight()); + private static final ModLayout layout = new ModLayout(60, Fonts.getHeight()); // --------------------------------------------------------------- // TPS sampling state (static — shared across all instances) @@ -46,7 +46,7 @@ public class TpsFeature extends Feature implements HudFeature { public TpsFeature() { super( - new FeatureDetails("TPS Display", "tps") + new ModSpec("TPS Display", "tps") .description("Displays the server's ticks per second") .version("v0.2.0") .tags("Utility"), @@ -126,7 +126,7 @@ public class TpsFeature extends Feature implements HudFeature { // --------------------------------------------------------------- @Override - public FeatureLayout getDimensions() { + public ModLayout getDimensions() { return layout; } diff --git a/src/main/java/org/saturnclient/feature/features/ZoomFeature.java b/src/main/java/org/saturnclient/mod/mods/ZoomFeature.java similarity index 91% rename from src/main/java/org/saturnclient/feature/features/ZoomFeature.java rename to src/main/java/org/saturnclient/mod/mods/ZoomFeature.java index fc45592..f0be429 100644 --- a/src/main/java/org/saturnclient/feature/features/ZoomFeature.java +++ b/src/main/java/org/saturnclient/mod/mods/ZoomFeature.java @@ -1,12 +1,12 @@ -package org.saturnclient.feature.features; +package org.saturnclient.mod.mods; import org.saturnclient.common.provider.GLFWProvider; import org.saturnclient.config.property.BoolProperty; import org.saturnclient.config.property.FloatProperty; import org.saturnclient.config.property.KeybindingProperty; import org.saturnclient.config.property.Property; -import org.saturnclient.feature.Feature; -import org.saturnclient.feature.FeatureDetails; +import org.saturnclient.mod.Mod; +import org.saturnclient.mod.ModSpec; /** * ZoomFeature multiplies the camera's field-of-view to create an @@ -16,7 +16,7 @@ import org.saturnclient.feature.FeatureDetails; * {@link #shouldZoom()} and {@link #getZoomLevel()} each frame. * No ModuleProvider is needed — there is no per-tick engine query. */ -public class ZoomFeature extends Feature { +public class ZoomFeature extends Mod { private static final BoolProperty enabled = Property.bool(false); private static final BoolProperty toggle = Property.bool(false); @@ -28,7 +28,7 @@ public class ZoomFeature extends Feature { public ZoomFeature() { super( - new FeatureDetails("Zoom", "zoom") + new ModSpec("Zoom", "zoom") .description("Zoom in for a closer view") .tags("Camera", "Utility") .version("v0.2.0"), diff --git a/src/main/java/org/saturnclient/ui/components/HudModPreview.java b/src/main/java/org/saturnclient/ui/components/HudModPreview.java index 20cff7c..a4e803a 100644 --- a/src/main/java/org/saturnclient/ui/components/HudModPreview.java +++ b/src/main/java/org/saturnclient/ui/components/HudModPreview.java @@ -1,21 +1,21 @@ package org.saturnclient.ui.components; -import org.saturnclient.feature.FeatureLayout; -import org.saturnclient.feature.HudFeature; +import org.saturnclient.mod.HudMod; +import org.saturnclient.mod.ModLayout; import org.saturnclient.ui.Element; import org.saturnclient.ui.ElementContext; import org.saturnclient.ui.RenderScope; public class HudModPreview extends Element { - HudFeature feature; + HudMod feature; - public HudModPreview(HudFeature feature) { + public HudModPreview(HudMod feature) { this.feature = feature; } @Override public void render(RenderScope scope, ElementContext ctx) { - FeatureLayout layout = feature.getDimensions(); + ModLayout layout = feature.getDimensions(); if (layout.renderBackground) { scope.drawRoundedRectangle(0, 0, layout.width, layout.height, diff --git a/src/main/java/org/saturnclient/ui/components/SaturnModule.java b/src/main/java/org/saturnclient/ui/components/SaturnModule.java index 45e407a..3a753e3 100644 --- a/src/main/java/org/saturnclient/ui/components/SaturnModule.java +++ b/src/main/java/org/saturnclient/ui/components/SaturnModule.java @@ -2,8 +2,8 @@ package org.saturnclient.ui.components; import org.saturnclient.common.provider.Providers; import org.saturnclient.config.Theme; -import org.saturnclient.feature.Feature; -import org.saturnclient.feature.HudFeature; +import org.saturnclient.mod.HudMod; +import org.saturnclient.mod.Mod; import org.saturnclient.ui.Element; import org.saturnclient.ui.ElementContext; import org.saturnclient.ui.RenderScope; @@ -14,13 +14,13 @@ import org.saturnclient.ui.screens.ConfigEditor; public class SaturnModule extends Element { - private final Feature mod; + private final Mod mod; static int p = 10; // padding static int s = 14; // settings icon size static int expand = 5; // settings icon click area - public SaturnModule(Feature mod) { + public SaturnModule(Mod mod) { this.mod = mod; this.width = 160; this.height = 50; @@ -142,7 +142,7 @@ public class SaturnModule extends Element { 1.0f); if (settingsHover) { - if (mod instanceof HudFeature h) { + if (mod instanceof HudMod h) { Providers.saturn.getClient().setScreen(new ConfigEditor(mod.getConfig(), h)); } else { Providers.saturn.getClient().setScreen(new ConfigEditor(mod.getConfig())); diff --git a/src/main/java/org/saturnclient/ui/screens/ConfigEditor.java b/src/main/java/org/saturnclient/ui/screens/ConfigEditor.java index 12f720e..8bd5c1d 100644 --- a/src/main/java/org/saturnclient/ui/screens/ConfigEditor.java +++ b/src/main/java/org/saturnclient/ui/screens/ConfigEditor.java @@ -12,8 +12,8 @@ import org.saturnclient.config.property.KeybindingProperty; import org.saturnclient.config.property.NamespaceProperty; import org.saturnclient.config.property.Property; import org.saturnclient.config.property.SelectProperty; -import org.saturnclient.feature.FeatureLayout; -import org.saturnclient.feature.HudFeature; +import org.saturnclient.mod.HudMod; +import org.saturnclient.mod.ModLayout; import org.saturnclient.ui.RenderScope; import org.saturnclient.ui.SaturnScreen; import org.saturnclient.ui.components.HudModPreview; @@ -30,7 +30,7 @@ import org.saturnclient.ui.resources.Fonts; public class ConfigEditor extends SaturnScreen { private ConfigManager config; - private HudFeature hudFeature; + private HudMod hudFeature; private HudModPreview preview; public ConfigEditor(ConfigManager config) { @@ -39,7 +39,7 @@ public class ConfigEditor extends SaturnScreen { this.config = config; } - public ConfigEditor(ConfigManager config, HudFeature hudFeature) { + public ConfigEditor(ConfigManager config, HudMod hudFeature) { super("Config Editor"); this.config = config; @@ -160,7 +160,7 @@ public class ConfigEditor extends SaturnScreen { @Override public void render(RenderScope renderScope, int mouseX, int mouseY, float delta, long elapsed) { if (this.preview != null) { - FeatureLayout layout = hudFeature.getDimensions(); + ModLayout layout = hudFeature.getDimensions(); draw(this.preview .dimensions(layout.width, (int) (layout.height * layout.scale.value * 2.0f)) .scale(1.0f) // Because the centering won't work properly diff --git a/src/main/java/org/saturnclient/ui/screens/HudEditor.java b/src/main/java/org/saturnclient/ui/screens/HudEditor.java index 2b16d8c..815fc39 100644 --- a/src/main/java/org/saturnclient/ui/screens/HudEditor.java +++ b/src/main/java/org/saturnclient/ui/screens/HudEditor.java @@ -2,10 +2,10 @@ package org.saturnclient.ui.screens; import org.saturnclient.common.ref.render.MatrixStackRef; import org.saturnclient.config.ConfigManager; -import org.saturnclient.feature.HudFeature; -import org.saturnclient.feature.FeatureLayout; -import org.saturnclient.feature.FeatureManager; -import org.saturnclient.feature.Feature; +import org.saturnclient.mod.HudMod; +import org.saturnclient.mod.Mod; +import org.saturnclient.mod.ModLayout; +import org.saturnclient.mod.ModManager; 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 HudFeature draggingMod = null; + private final List hudMods = new ArrayList<>(); + private HudMod draggingMod = null; private boolean resizing = false; private int offsetX, offsetY; private static final int RESIZE_MARGIN = 3; public HudEditor() { super("HUD Editor"); - for (Feature m : FeatureManager.ENABLED_MODS) { - if (m.isEnabled() && m instanceof HudFeature) { - hudMods.add((HudFeature) m); + for (Mod m : ModManager.ENABLED_MODS) { + if (m.isEnabled() && m instanceof HudMod) { + hudMods.add((HudMod) 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--) { - HudFeature mod = hudMods.get(m); - FeatureLayout dim = mod.getDimensions(); + HudMod mod = hudMods.get(m); + ModLayout 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) { - FeatureLayout dim = draggingMod.getDimensions(); + ModLayout 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 (HudFeature mod : hudMods) { - FeatureLayout dim = mod.getDimensions(); + for (HudMod mod : hudMods) { + ModLayout 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, FeatureLayout dim) { + private boolean isInside(double mouseX, double mouseY, ModLayout 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, FeatureLayout dim) { + private boolean isCorner(double mouseX, double mouseY, ModLayout 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 36d4228..a531eca 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.config.AnimationConfig; -import org.saturnclient.feature.FeatureManager; -import org.saturnclient.feature.Feature; +import org.saturnclient.mod.Mod; +import org.saturnclient.mod.ModManager; 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 (Feature mod : FeatureManager.MODS) { + for (Mod mod : ModManager.MODS) { moduleStagger.draw( new SaturnModule(mod) .position((160 + g) * col, (50 + g) * row)