From 35440180ea53cdbcfe60723d7242f9502cd2f2f4 Mon Sep 17 00:00:00 2001 From: Leo dev Date: Fri, 9 May 2025 01:54:17 +0200 Subject: [PATCH] made the mod actually good --- .../java/org/saturnclient/modules/Module.java | 26 +++++++------ .../saturnclient/modules/ModuleDetails.java | 39 +++++++++++++++++++ .../saturnclient/modules/mods/AutoSprint.java | 3 +- .../saturnclient/modules/mods/Crosshair.java | 3 +- .../ui2/components/SaturnModule.java | 17 +++++++- 5 files changed, 72 insertions(+), 16 deletions(-) create mode 100644 src/main/java/org/saturnclient/modules/ModuleDetails.java diff --git a/src/main/java/org/saturnclient/modules/Module.java b/src/main/java/org/saturnclient/modules/Module.java index d7e9405..989cf33 100644 --- a/src/main/java/org/saturnclient/modules/Module.java +++ b/src/main/java/org/saturnclient/modules/Module.java @@ -12,11 +12,13 @@ public abstract class Module { private final String namespace; private final String description; private final ConfigManager configManager; + public final String[] tags; - public Module(String name, String namespace, String description, NamedProperty... props) { - this.name = name; - this.namespace = namespace; - this.description = description; + public Module(ModuleDetails details, NamedProperty... props) { + this.name = details.name; + this.namespace = details.namespace; + this.description = details.description; + this.tags = details.tags; configManager = new ConfigManager(name); @@ -25,14 +27,6 @@ public abstract class Module { } } - public Module(ConfigManager config, String name, String namespace, String description) { - this.name = name; - this.namespace = namespace; - this.description = description; - - configManager = config; - } - public void render(RenderScope scope) {} public void tick() {} @@ -55,4 +49,12 @@ public abstract class Module { public String getDescription() { return description; } + + public String[] getTags() { + return tags; + } + + public String getVersion() { + return "v0.0.1"; + } } diff --git a/src/main/java/org/saturnclient/modules/ModuleDetails.java b/src/main/java/org/saturnclient/modules/ModuleDetails.java new file mode 100644 index 0000000..3cce480 --- /dev/null +++ b/src/main/java/org/saturnclient/modules/ModuleDetails.java @@ -0,0 +1,39 @@ +package org.saturnclient.modules; + +public class ModuleDetails { + public String name; + public String namespace; + public String description; + public String version; + public String[] tags = {}; + + public ModuleDetails(String name, String namespace) { + this.name = name; + this.namespace = namespace; + } + + public ModuleDetails name(String name) { + this.name = name; + return this; + } + + public ModuleDetails namespace(String namespace) { + this.namespace = namespace; + return this; + } + + public ModuleDetails description(String description) { + this.description = description; + return this; + } + + public ModuleDetails version(String version) { + this.version = version; + return this; + } + + public ModuleDetails tags(String... tags) { + this.tags = tags; + return this; + } +} diff --git a/src/main/java/org/saturnclient/modules/mods/AutoSprint.java b/src/main/java/org/saturnclient/modules/mods/AutoSprint.java index 8e50fc4..294fb35 100644 --- a/src/main/java/org/saturnclient/modules/mods/AutoSprint.java +++ b/src/main/java/org/saturnclient/modules/mods/AutoSprint.java @@ -3,6 +3,7 @@ package org.saturnclient.modules.mods; import java.util.Objects; import org.saturnclient.modules.Module; +import org.saturnclient.modules.ModuleDetails; import org.saturnclient.saturnclient.SaturnClient; import org.saturnclient.saturnclient.config.Property; @@ -10,7 +11,7 @@ public class AutoSprint extends Module { private static Property enabled = new Property<>(true); public AutoSprint() { - super("Auto Sprint", "sprint", "Makes the player always sprint", enabled.named("Enabled")); + super(new ModuleDetails("Auto Sprint", "sprint").description("Makes the player always sprint").tags("Movement"), enabled.named("Enabled")); } @Override diff --git a/src/main/java/org/saturnclient/modules/mods/Crosshair.java b/src/main/java/org/saturnclient/modules/mods/Crosshair.java index 95cd9fa..9dca470 100644 --- a/src/main/java/org/saturnclient/modules/mods/Crosshair.java +++ b/src/main/java/org/saturnclient/modules/mods/Crosshair.java @@ -1,6 +1,7 @@ package org.saturnclient.modules.mods; import org.saturnclient.modules.Module; +import org.saturnclient.modules.ModuleDetails; import org.saturnclient.saturnclient.SaturnClient; import org.saturnclient.saturnclient.config.Property; import org.saturnclient.ui2.RenderScope; @@ -13,7 +14,7 @@ public class Crosshair extends Module { public static Property range_indicator = new Property<>(false); public Crosshair() { - super("Crosshair", "crosshair", "Changes the crosshair if you're aiming at a entity", enabled.named("Enabled"), range_indicator.named("Range Indicator")); + super(new ModuleDetails("Crosshair", "crosshair").description("Changes the crosshair if you're aiming at a entity").tags("Visuals", "Utility"), enabled.named("Enabled"), range_indicator.named("Range Indicator")); } @Override diff --git a/src/main/java/org/saturnclient/ui2/components/SaturnModule.java b/src/main/java/org/saturnclient/ui2/components/SaturnModule.java index a24325e..1e0f02a 100644 --- a/src/main/java/org/saturnclient/ui2/components/SaturnModule.java +++ b/src/main/java/org/saturnclient/ui2/components/SaturnModule.java @@ -25,6 +25,7 @@ public class SaturnModule extends Element { private static Property padding = theme.property("padding", new Property(10)); private static Property iconMargin = theme.property("icon-margin", new Property(10)); private static Property iconPadding = theme.property("icon-padding", new Property(4)); + private static Property tagGap = theme.property("tag-gap", new Property(4)); private static ThemeManager settingsTheme = new ThemeManager("SaturnModule$Settings", "hovering"); private static Property settingsBg = settingsTheme.property("bg-color", new Property(-16777216)); @@ -42,7 +43,7 @@ public class SaturnModule extends Element { public SaturnModule(Module mod) { this.mod = mod; this.width = 180; - this.height = 140; + this.height = 113; } @Override @@ -65,18 +66,30 @@ public class SaturnModule extends Element { renderScope.matrices.translate(padding.value, padding.value, 0); + // Top part renderScope.drawRoundedRectangle(0, 0, 20, 20, 10, iconBgColor.value); renderScope.drawTexture(mod.getIconTexture(), iconPadding.value, iconPadding.value, 0, 0, 20 - (iconPadding.value * 2), 20 - (iconPadding.value * 2), iconColor.value); renderScope.drawText(mod.getName(), 20 + iconMargin.value, (22 - Fonts.getHeight()) / 2, false, fgColor.value); + renderScope.matrices.push(); renderScope.matrices.translate(20 + iconMargin.value, ((22 - Fonts.getHeight()) / 2) + Fonts.getHeight(), 0); renderScope.matrices.scale(0.5f, 0.5f, 1); renderScope.drawText(formatText(mod.getDescription(), (int) ((width - iconMargin.value) * 1.5f)), 0, 0, false, -20); renderScope.matrices.pop(); - renderScope.matrices.pop(); + // Mid part + int i = padding.value; + for (String tag : mod.getTags()) { + renderScope.matrices.push(); + renderScope.matrices.translate(i, height - 40 - Fonts.getHeight(), 0); + renderScope.matrices.scale(0.5f, 0.5f, 1); + renderScope.drawText(tag, 0, 0, false, -20); + renderScope.matrices.pop(); + i += (Fonts.getWidth(tag, false) * 0.5f) + tagGap.value; + } + // Settings button renderScope.matrices.push(); renderScope.matrices.translate(padding.value, height - 30 - padding.value, 0);