refactor of the module system. Bug: all mods are enabled bc the Module has static enabled
This commit is contained in:
@@ -5,8 +5,6 @@ import net.fabricmc.fabric.api.client.rendering.v1.HudRenderCallback;
|
||||
import net.minecraft.client.font.TextRenderer;
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
import org.saturnclient.modules.mods.*;
|
||||
import org.saturnclient.saturnclient.SaturnClient;
|
||||
import org.saturnclient.saturnclient.SaturnClientConfig;
|
||||
@@ -14,19 +12,22 @@ import org.saturnclient.saturnclient.menus.HudEditor;
|
||||
|
||||
public class ModManager {
|
||||
|
||||
public static SaturnMod[] MODS = {
|
||||
public static Module[] MODS = {
|
||||
new Coordinates(),
|
||||
new ArmorDisplay(),
|
||||
new FpsDisplay(),
|
||||
new Particles(),
|
||||
new Crosshair(),
|
||||
new FreeLook()
|
||||
new FreeLook(),
|
||||
new AutoSprint()
|
||||
};
|
||||
|
||||
public static void init() {
|
||||
ClientTickEvents.START_CLIENT_TICK.register(client -> {
|
||||
if (SaturnClient.client.options.forwardKey.isPressed() && !SaturnClient.client.options.backKey.isPressed() && !SaturnClient.client.player.horizontalCollision) {
|
||||
Objects.requireNonNull(SaturnClient.client.player).setSprinting(true);
|
||||
for (Module m : MODS) {
|
||||
if (m instanceof TickModule && m.isEnabled()) {
|
||||
((TickModule) m).tick();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -37,7 +38,7 @@ public class ModManager {
|
||||
!(SaturnClient.client.currentScreen instanceof HudEditor)) {
|
||||
SaturnClientConfig.textRenderer = textRenderer;
|
||||
|
||||
for (SaturnMod m : MODS) {
|
||||
for (Module m : MODS) {
|
||||
if (m instanceof HudMod && m.isEnabled()) {
|
||||
ModDimensions dim = ((HudMod) m).getDimensions();
|
||||
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
package org.saturnclient.modules;
|
||||
|
||||
import org.saturnclient.saturnclient.config.ConfigManager;
|
||||
import org.saturnclient.saturnclient.config.Property;
|
||||
import org.saturnclient.ui.Textures;
|
||||
|
||||
import net.minecraft.util.Identifier;
|
||||
|
||||
public abstract class Module {
|
||||
public static Property<Boolean> enabled;
|
||||
private final String name;
|
||||
private final String namespace;
|
||||
private final ConfigManager configManager;
|
||||
|
||||
public Module(ConfigManager config, String name, String namespace) {
|
||||
this.name = name;
|
||||
this.namespace = namespace;
|
||||
|
||||
enabled = config.property(
|
||||
"Enabled",
|
||||
new Property<>(false));
|
||||
|
||||
configManager = config;
|
||||
}
|
||||
|
||||
public boolean isEnabled() {
|
||||
return enabled.value;
|
||||
}
|
||||
|
||||
public void setEnabled(boolean e) {
|
||||
enabled.value = e;
|
||||
}
|
||||
|
||||
public final String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public Identifier getIconTexture() {
|
||||
return Textures.getModIcon(namespace);
|
||||
}
|
||||
|
||||
public ConfigManager getConfig() {
|
||||
return configManager;
|
||||
}
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
package org.saturnclient.modules;
|
||||
|
||||
import org.saturnclient.saturnclient.config.ConfigManager;
|
||||
|
||||
import net.minecraft.util.Identifier;
|
||||
|
||||
public interface SaturnMod {
|
||||
public boolean isEnabled();
|
||||
|
||||
public void setEnabled(boolean e);
|
||||
|
||||
public String getName();
|
||||
|
||||
public Identifier getIconTexture();
|
||||
|
||||
public ConfigManager getConfig();
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package org.saturnclient.modules;
|
||||
|
||||
public interface TickModule {
|
||||
public void tick();
|
||||
}
|
||||
@@ -7,23 +7,17 @@ import net.minecraft.entity.EquipmentSlot;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.item.Items;
|
||||
import net.minecraft.util.Identifier;
|
||||
|
||||
import org.saturnclient.modules.HudMod;
|
||||
import org.saturnclient.modules.ModDimensions;
|
||||
import org.saturnclient.modules.SaturnMod;
|
||||
import org.saturnclient.modules.Module;
|
||||
import org.saturnclient.saturnclient.SaturnClientConfig;
|
||||
import org.saturnclient.saturnclient.SaturnClient;
|
||||
import org.saturnclient.saturnclient.config.ConfigManager;
|
||||
import org.saturnclient.saturnclient.config.Property;
|
||||
import org.saturnclient.ui.Textures;
|
||||
|
||||
public class ArmorDisplay implements SaturnMod, HudMod {
|
||||
public class ArmorDisplay extends Module implements HudMod {
|
||||
|
||||
private static ConfigManager config = new ConfigManager("Armor Display");
|
||||
public static Property<Boolean> enabled = config.property(
|
||||
"Enabled",
|
||||
new Property<>(false));
|
||||
private static ModDimensions dimensions = new ModDimensions(
|
||||
config,
|
||||
0,
|
||||
@@ -35,6 +29,11 @@ public class ArmorDisplay implements SaturnMod, HudMod {
|
||||
"Foreground color",
|
||||
new Property<>(SaturnClientConfig.WHITE, Property.PropertyType.HEX));
|
||||
|
||||
|
||||
public ArmorDisplay() {
|
||||
super(config, "Armor Display", "armor");
|
||||
}
|
||||
|
||||
private boolean renderItem(DrawContext context, ItemStack item, int y) {
|
||||
if (item.isEmpty()) {
|
||||
return false;
|
||||
@@ -104,29 +103,7 @@ public class ArmorDisplay implements SaturnMod, HudMod {
|
||||
}
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return "Armor display";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Identifier getIconTexture() {
|
||||
return Textures.getModIcon("armor");
|
||||
}
|
||||
|
||||
public ModDimensions getDimensions() {
|
||||
return dimensions;
|
||||
}
|
||||
|
||||
public boolean isEnabled() {
|
||||
return enabled.value;
|
||||
}
|
||||
|
||||
public void setEnabled(boolean e) {
|
||||
enabled.value = e;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ConfigManager getConfig() {
|
||||
return config;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
package org.saturnclient.modules.mods;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
import org.saturnclient.modules.Module;
|
||||
import org.saturnclient.modules.TickModule;
|
||||
import org.saturnclient.saturnclient.SaturnClient;
|
||||
import org.saturnclient.saturnclient.config.ConfigManager;
|
||||
|
||||
public class AutoSprint extends Module implements TickModule {
|
||||
|
||||
private static ConfigManager config = new ConfigManager("Armor Display");
|
||||
|
||||
public AutoSprint() {
|
||||
super(config, "Auto Sprint", "auto_sprint");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void tick() {
|
||||
if (SaturnClient.client.options.forwardKey.isPressed() && !SaturnClient.client.options.backKey.isPressed() && !SaturnClient.client.player.horizontalCollision) {
|
||||
Objects.requireNonNull(SaturnClient.client.player).setSprinting(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,23 +2,18 @@ package org.saturnclient.modules.mods;
|
||||
|
||||
import net.minecraft.client.gui.DrawContext;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.util.Identifier;
|
||||
|
||||
import org.saturnclient.modules.HudMod;
|
||||
import org.saturnclient.modules.ModDimensions;
|
||||
import org.saturnclient.modules.SaturnMod;
|
||||
import org.saturnclient.modules.Module;
|
||||
import org.saturnclient.saturnclient.SaturnClient;
|
||||
import org.saturnclient.saturnclient.SaturnClientConfig;
|
||||
import org.saturnclient.saturnclient.config.ConfigManager;
|
||||
import org.saturnclient.saturnclient.config.Property;
|
||||
import org.saturnclient.ui.Textures;
|
||||
|
||||
public class Coordinates implements SaturnMod, HudMod {
|
||||
public class Coordinates extends Module implements HudMod {
|
||||
|
||||
private static ConfigManager config = new ConfigManager("Coordinates");
|
||||
public static Property<Boolean> enabled = config.property(
|
||||
"Enabled",
|
||||
new Property<>(false));
|
||||
private static ModDimensions dimensions = new ModDimensions(config);
|
||||
|
||||
public static Property<Integer> fgColor = config.property(
|
||||
@@ -26,10 +21,7 @@ public class Coordinates implements SaturnMod, HudMod {
|
||||
new Property<>(SaturnClientConfig.WHITE, Property.PropertyType.HEX));
|
||||
|
||||
public Coordinates() {
|
||||
// Ensure fgColor has a value
|
||||
if (fgColor.value == null) {
|
||||
fgColor.value = SaturnClientConfig.WHITE;
|
||||
}
|
||||
super(config, "Coordinates", "coords");
|
||||
}
|
||||
|
||||
public void renderDummy(DrawContext context) {
|
||||
@@ -65,29 +57,7 @@ public class Coordinates implements SaturnMod, HudMod {
|
||||
false);
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return "Coords";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Identifier getIconTexture() {
|
||||
return Textures.getModIcon("coords");
|
||||
}
|
||||
|
||||
public ModDimensions getDimensions() {
|
||||
return dimensions;
|
||||
}
|
||||
|
||||
public boolean isEnabled() {
|
||||
return enabled.value;
|
||||
}
|
||||
|
||||
public void setEnabled(boolean e) {
|
||||
enabled.value = e;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ConfigManager getConfig() {
|
||||
return config;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,45 +1,17 @@
|
||||
package org.saturnclient.modules.mods;
|
||||
|
||||
import net.minecraft.util.Identifier;
|
||||
|
||||
import org.saturnclient.modules.SaturnMod;
|
||||
import org.saturnclient.modules.Module;
|
||||
import org.saturnclient.saturnclient.config.ConfigManager;
|
||||
import org.saturnclient.saturnclient.config.Property;
|
||||
import org.saturnclient.ui.Textures;
|
||||
|
||||
public class Crosshair implements SaturnMod {
|
||||
public class Crosshair extends Module {
|
||||
public static ConfigManager config = new ConfigManager("Crosshair");
|
||||
|
||||
public static Property<Boolean> enabled = config.property(
|
||||
"Enabled",
|
||||
new Property<>(false));
|
||||
|
||||
public static Property<Boolean> range_indicator = config.property(
|
||||
"Hit range indicator",
|
||||
new Property<>(false));
|
||||
|
||||
@Override
|
||||
public boolean isEnabled() {
|
||||
return enabled.value;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setEnabled(boolean e) {
|
||||
enabled.value = e;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "Crosshair";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Identifier getIconTexture() {
|
||||
return Textures.getModIcon("crosshair");
|
||||
}
|
||||
|
||||
@Override
|
||||
public ConfigManager getConfig() {
|
||||
return config;
|
||||
public Crosshair() {
|
||||
super(config, "Crosshair", "crosshair");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,24 +2,18 @@ package org.saturnclient.modules.mods;
|
||||
|
||||
import org.saturnclient.saturnclient.SaturnClient;
|
||||
import net.minecraft.client.gui.DrawContext;
|
||||
import net.minecraft.util.Identifier;
|
||||
|
||||
import org.saturnclient.modules.HudMod;
|
||||
import org.saturnclient.modules.ModDimensions;
|
||||
import org.saturnclient.modules.SaturnMod;
|
||||
import org.saturnclient.modules.Module;
|
||||
import org.saturnclient.saturnclient.SaturnClientConfig;
|
||||
import org.saturnclient.saturnclient.config.ConfigManager;
|
||||
import org.saturnclient.saturnclient.config.Property;
|
||||
import org.saturnclient.ui.Textures;
|
||||
|
||||
public class FpsDisplay implements SaturnMod, HudMod {
|
||||
public class FpsDisplay extends Module implements HudMod {
|
||||
|
||||
public static ConfigManager config = new ConfigManager("Fps Display");
|
||||
|
||||
public static Property<Boolean> enabled = config.property(
|
||||
"Enabled",
|
||||
new Property<>(false));
|
||||
|
||||
public static ModDimensions dimensions = new ModDimensions(
|
||||
config,
|
||||
0,
|
||||
@@ -31,6 +25,11 @@ public class FpsDisplay implements SaturnMod, HudMod {
|
||||
"Foreground color",
|
||||
new Property<>(SaturnClientConfig.WHITE, Property.PropertyType.HEX));
|
||||
|
||||
|
||||
public FpsDisplay() {
|
||||
super(config, "Fps Display", "fps");
|
||||
}
|
||||
|
||||
@Override
|
||||
public ModDimensions getDimensions() {
|
||||
return dimensions;
|
||||
@@ -61,29 +60,4 @@ public class FpsDisplay implements SaturnMod, HudMod {
|
||||
fgColor.value,
|
||||
false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEnabled() {
|
||||
return enabled.value;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setEnabled(boolean e) {
|
||||
enabled.value = e;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "Fps Display";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Identifier getIconTexture() {
|
||||
return Textures.getModIcon("fps");
|
||||
}
|
||||
|
||||
@Override
|
||||
public ConfigManager getConfig() {
|
||||
return config;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,46 +1,21 @@
|
||||
package org.saturnclient.modules.mods;
|
||||
|
||||
import org.saturnclient.modules.SaturnMod;
|
||||
import org.saturnclient.modules.Module;
|
||||
import org.saturnclient.saturnclient.config.ConfigManager;
|
||||
import org.saturnclient.saturnclient.config.Property;
|
||||
import org.saturnclient.ui.Textures;
|
||||
|
||||
import net.minecraft.client.option.Perspective;
|
||||
import net.minecraft.util.Identifier;
|
||||
|
||||
public class FreeLook implements SaturnMod {
|
||||
public class FreeLook extends Module {
|
||||
public static boolean isFreeLooking = false;
|
||||
public static Perspective lastPerspective = null;
|
||||
|
||||
private static ConfigManager config = new ConfigManager("Free Look");
|
||||
public static Property<Boolean> enabled = config.property(
|
||||
"Enabled",
|
||||
new Property<>(false));
|
||||
|
||||
public static Property<Boolean> toggle = config.property(
|
||||
"Toggle Free Look",
|
||||
new Property<>(false));
|
||||
|
||||
public boolean isEnabled() {
|
||||
return enabled.value;
|
||||
}
|
||||
|
||||
public void setEnabled(boolean e) {
|
||||
enabled.value = e;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ConfigManager getConfig() {
|
||||
return config;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Identifier getIconTexture() {
|
||||
return Textures.getModIcon("freelook");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "Free Look";
|
||||
public FreeLook() {
|
||||
super(config, "Free Look", "freelook");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,20 +1,13 @@
|
||||
package org.saturnclient.modules.mods;
|
||||
|
||||
import net.minecraft.util.Identifier;
|
||||
|
||||
import org.saturnclient.modules.SaturnMod;
|
||||
import org.saturnclient.modules.Module;
|
||||
import org.saturnclient.saturnclient.SaturnClientConfig;
|
||||
import org.saturnclient.saturnclient.config.ConfigManager;
|
||||
import org.saturnclient.saturnclient.config.Property;
|
||||
import org.saturnclient.ui.Textures;
|
||||
|
||||
public class Particles implements SaturnMod {
|
||||
public class Particles extends Module {
|
||||
public static ConfigManager config = new ConfigManager("Particles");
|
||||
|
||||
public static Property<Boolean> enabled = config.property(
|
||||
"Enabled",
|
||||
new Property<>(false));
|
||||
|
||||
public static ConfigManager totem = new ConfigManager(config, "Totem particles");
|
||||
|
||||
public static Property<Boolean> totem_enabled = totem.property(
|
||||
@@ -29,28 +22,7 @@ public class Particles implements SaturnMod {
|
||||
"Totem particle color 2",
|
||||
new Property<>(SaturnClientConfig.color.value, Property.PropertyType.HEX));
|
||||
|
||||
@Override
|
||||
public boolean isEnabled() {
|
||||
return enabled.value;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setEnabled(boolean e) {
|
||||
enabled.value = e;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "Particles";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Identifier getIconTexture() {
|
||||
return Textures.getModIcon("particles");
|
||||
}
|
||||
|
||||
@Override
|
||||
public ConfigManager getConfig() {
|
||||
return config;
|
||||
public Particles() {
|
||||
super(config, "Particles", "particles");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,7 +13,6 @@ import java.util.HashMap;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
import org.saturnclient.saturnclient.SaturnClient;
|
||||
import org.saturnclient.saturnclient.SaturnClient;
|
||||
|
||||
public class ConfigManager {
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ import net.minecraft.client.option.Perspective;
|
||||
import net.minecraft.client.util.InputUtil;
|
||||
|
||||
import org.saturnclient.modules.mods.FreeLook;
|
||||
import org.saturnclient.saturnclient.menus.ModMenu;
|
||||
import org.saturnclient.saturnclient.menus.SaturnMenu;
|
||||
import org.lwjgl.glfw.GLFW;
|
||||
|
||||
@@ -45,7 +46,7 @@ public class KeyInputHandler {
|
||||
// Register the event handler for the main menu key
|
||||
ClientTickEvents.END_CLIENT_TICK.register(client -> {
|
||||
if (mainMenuKeyBinding.wasPressed()) {
|
||||
client.setScreen(new SaturnMenu());
|
||||
client.setScreen(new ModMenu());
|
||||
} else if (freelookKeyBinding.wasPressed() && FreeLook.enabled.value && FreeLook.toggle.value) {
|
||||
FreeLook.isFreeLooking = !FreeLook.isFreeLooking;
|
||||
if (FreeLook.isFreeLooking) {
|
||||
|
||||
@@ -8,7 +8,7 @@ import net.minecraft.text.Text;
|
||||
import org.saturnclient.modules.HudMod;
|
||||
import org.saturnclient.modules.ModDimensions;
|
||||
import org.saturnclient.modules.ModManager;
|
||||
import org.saturnclient.modules.SaturnMod;
|
||||
import org.saturnclient.modules.Module;
|
||||
import org.saturnclient.saturnclient.config.ConfigManager;
|
||||
import org.saturnclient.ui.SaturnUi;
|
||||
|
||||
@@ -24,7 +24,7 @@ public class HudEditor extends Screen {
|
||||
|
||||
public HudEditor() {
|
||||
super(Text.literal("HUD Editor"));
|
||||
for (SaturnMod m : ModManager.MODS) {
|
||||
for (Module m : ModManager.MODS) {
|
||||
if (m.isEnabled() && m instanceof HudMod) {
|
||||
hudMods.add((HudMod) m);
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ package org.saturnclient.saturnclient.menus;
|
||||
import net.minecraft.text.Text;
|
||||
|
||||
import org.saturnclient.modules.ModManager;
|
||||
import org.saturnclient.modules.SaturnMod;
|
||||
import org.saturnclient.modules.Module;
|
||||
import org.saturnclient.saturnclient.SaturnClientConfig;
|
||||
import org.saturnclient.saturnclient.config.ConfigManager;
|
||||
import org.saturnclient.saturnclient.config.Property;
|
||||
@@ -118,7 +118,7 @@ public class ModMenu extends SaturnUi {
|
||||
|
||||
String[] searchTokens = search.value.toLowerCase().split("\\ ");
|
||||
|
||||
outer: for (SaturnMod mod : ModManager.MODS) {
|
||||
outer: for (Module mod : ModManager.MODS) {
|
||||
String modName = mod.getName().toLowerCase();
|
||||
for (String searchToken : searchTokens) {
|
||||
if (!modName.contains(searchToken)) {
|
||||
|
||||
@@ -2,7 +2,7 @@ package org.saturnclient.ui.components;
|
||||
|
||||
import net.minecraft.client.gui.DrawContext;
|
||||
|
||||
import org.saturnclient.modules.SaturnMod;
|
||||
import org.saturnclient.modules.Module;
|
||||
import org.saturnclient.saturnclient.SaturnClient;
|
||||
import org.saturnclient.saturnclient.SaturnClientConfig;
|
||||
import org.saturnclient.saturnclient.menus.ConfigEditor;
|
||||
@@ -12,9 +12,9 @@ import org.saturnclient.ui.Textures;
|
||||
|
||||
public class SaturnModComp extends SaturnWidget {
|
||||
|
||||
SaturnMod mod;
|
||||
Module mod;
|
||||
|
||||
public SaturnModComp(SaturnMod mod) {
|
||||
public SaturnModComp(Module mod) {
|
||||
this.mod = mod;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user