Module provider

This commit is contained in:
2026-03-06 23:27:26 +01:00
parent c93b0e049d
commit debf9ce96d
5 changed files with 31 additions and 30 deletions
@@ -3,39 +3,18 @@ package org.saturnclient.modules;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import org.saturnclient.modules.mods.*;
public class ModManager { public class ModManager {
public static final List<Module> ENABLED_MODS = new ArrayList<>(); public static List<Module> ENABLED_MODS = new ArrayList<>();
public static final Module[] ALL_MODS = { public static Module[] MODS = {};
// new Crosshair(),
// new AutoSprint(),
new ArmorDisplay(),
// new Fps(),
// new StatusEffects(),
// new Coordinates(),
// new Freelook(),
// new Keystrokes(),
// new Fullbright(),
// new NoFog(),
// new DayCounter(),
// new Speedometer(),
// new Zoom(),
// new HealthDisplay(),
// new Nametags(),
// new Ping(),
// new Tps(),
// new Clock()
};
public static void init() { public static void init(ModuleProvider provider) {
// Pre-filter enabled modules to avoid checking every tick MODS = provider.getMods();
updateEnabledModules(); updateEnabledModules();
} }
public static synchronized void updateEnabledModules() { public static synchronized void updateEnabledModules() {
ENABLED_MODS.clear(); ENABLED_MODS.clear();
for (Module m : ALL_MODS) { for (Module m : MODS) {
if (m.isEnabled()) { if (m.isEnabled()) {
ENABLED_MODS.add(m); ENABLED_MODS.add(m);
} }
@@ -43,6 +22,10 @@ public class ModManager {
} }
public static Module[] getAllMods() { public static Module[] getAllMods() {
return ALL_MODS; return MODS;
}
public interface ModuleProvider {
Module[] getMods();
} }
} }
@@ -13,7 +13,7 @@ public class ArmorDisplay extends Module implements HudMod {
private static Property<Boolean> enabled = Property.bool(false); private static Property<Boolean> enabled = Property.bool(false);
private static ModDimensions dimensions = new ModDimensions(40, 75); private static ModDimensions dimensions = new ModDimensions(40, 75);
private static Property<Boolean> useMainHand = Property.bool(false); private static Property<Boolean> useMainHand = Property.bool(true);
private final ArmorDisplayInterface minecraft; private final ArmorDisplayInterface minecraft;
@@ -0,0 +1,17 @@
package org.saturnclient.impl;
import org.saturnclient.impl.modules.ArmorDisplayFabric;
import org.saturnclient.modules.Module;
import org.saturnclient.modules.ModManager.ModuleProvider;
import org.saturnclient.modules.mods.*;
public class FabricModuleProvider implements ModuleProvider {
public static Module[] MODS = {
new ArmorDisplay(new ArmorDisplayFabric())
};
@Override
public Module[] getMods() {
return MODS;
}
}
@@ -10,6 +10,7 @@ import net.minecraft.client.util.math.MatrixStack;
import org.saturnclient.cosmetics.Emotes; import org.saturnclient.cosmetics.Emotes;
import org.saturnclient.cosmetics.cloak.Cloaks; import org.saturnclient.cosmetics.cloak.Cloaks;
import org.saturnclient.cosmetics.hat.Hats; import org.saturnclient.cosmetics.hat.Hats;
import org.saturnclient.impl.FabricModuleProvider;
import org.saturnclient.impl.SaturnClientProvider; import org.saturnclient.impl.SaturnClientProvider;
import org.saturnclient.modules.ModManager; import org.saturnclient.modules.ModManager;
import org.saturnclient.saturnclient.client.ServiceClient; import org.saturnclient.saturnclient.client.ServiceClient;
@@ -48,7 +49,7 @@ public class SaturnClient implements ModInitializer {
ElementRenderer.INSTANCE = new ElementRendererImpl(); ElementRenderer.INSTANCE = new ElementRendererImpl();
Config.init(); Config.init();
ModManager.init(); ModManager.init(new FabricModuleProvider());
client.execute(() -> { client.execute(() -> {
SaturnScreen.preload(client); SaturnScreen.preload(client);
@@ -29,7 +29,7 @@ public class ModMenu extends SaturnScreen {
AnimationStagger moduleStagger = new AnimationStagger(AnimationConfig.modMenu); AnimationStagger moduleStagger = new AnimationStagger(AnimationConfig.modMenu);
for (Module mod : ModManager.ALL_MODS) { for (Module mod : ModManager.MODS) {
moduleStagger.draw( moduleStagger.draw(
new SaturnModule(mod) new SaturnModule(mod)
.position((160 + g) * col, (50 + g) * row) .position((160 + g) * col, (50 + g) * row)