feat: config option to force Polymer-mode

This commit is contained in:
Martin Prokoph
2025-03-16 13:36:18 +01:00
parent 395bbfc92c
commit aee6a68c7b
5 changed files with 14 additions and 3 deletions

View File

@@ -45,6 +45,8 @@
"rocks.midnightconfig.category.sticks": "Stöcke",
"rocks.midnightconfig.enablePolymerMode": "Aktiviere Polymer-Modus",
"rocks.midnightconfig.enablePolymerMode.tooltip": "Erlaubt der Mod, komplett serverseitig zu funktionieren, wenn Polymer und FactoryTools installiert sind",
"rocks.midnightconfig.forcePolymerMode": "Erzwinge Polymer-Modus",
"rocks.midnightconfig.forcePolymerMode.tooltip": "Aktiviert den Polymer-Modus auch für Clients, die die ThisRocks! installiert haben",
"rocks.midnightconfig.geyserLevitation": "Geysir Schwebeeffekt",
"rocks.midnightconfig.needs_restart": "§cStarte das Spiel neu, nachdem du Änderungen vorgenommen hast!",
"rocks.midnightconfig.needs_restart1": "§cStarte das Spiel neu, nachdem du Änderungen vorgenommen hast!",

View File

@@ -45,6 +45,8 @@
"rocks.midnightconfig.category.sticks": "Sticks",
"rocks.midnightconfig.enablePolymerMode": "Enable Polymer Mode",
"rocks.midnightconfig.enablePolymerMode.tooltip": "Allows the mod to work fully server-sided when used in combination with Polymer and FactoryTools",
"rocks.midnightconfig.forcePolymerMode": "Force Polymer Mode",
"rocks.midnightconfig.forcePolymerMode.tooltip": "Also enables Polymer mode for clients that have ThisRocks! installed",
"rocks.midnightconfig.geyserLevitation": "Geyser Levitation",
"rocks.midnightconfig.needs_restart": "§cRestart the game after changing options here!",
"rocks.midnightconfig.needs_restart1": "§cRestart the game after changing options here!",

View File

@@ -73,12 +73,14 @@ public class RocksMain implements ModInitializer {
@Override
public void onInitialize() {
RocksConfig.init(MOD_ID, RocksConfig.class);
if (polymerMode) polymerMode = RocksConfig.enablePolymerMode && !PlatformFunctions.isClientEnv();
if (polymerMode) polymerMode = RocksConfig.enablePolymerMode && (RocksConfig.forcePolymerMode || !PlatformFunctions.isClientEnv());
PayloadTypeRegistry.playC2S().register(HelloPayload.PACKET_ID, HelloPayload.codec);
ServerPlayNetworking.registerGlobalReceiver(HelloPayload.PACKET_ID, (payload, context) -> {
playersWithMod.add(context.player());
if (polymerMode) PolyUtil.hideElementHolders(context.player());
if (!RocksConfig.forcePolymerMode) {
playersWithMod.add(context.player());
if (polymerMode) PolyUtil.hideElementHolders(context.player());
}
});
ServerPlayConnectionEvents.DISCONNECT.register((playNetworkHandler, server) -> {
playersWithMod.remove(playNetworkHandler.player);

View File

@@ -52,6 +52,7 @@ public class RocksConfig extends MidnightConfig {
@Entry(category = effects) public static boolean netherGeyserDamage = true;
@Entry(category = effects) public static boolean enablePolymerMode = true;
@Entry(category = effects) public static boolean forcePolymerMode = false;
@Entry(category = effects, requiredMod = "factorytools", min = 0, max = 200, isSlider = true) public static int polymerViewDistance = 100;
@Entry(category = effects) public static List<String> biomeExclusions = new ArrayList<>();
}

View File

@@ -127,6 +127,8 @@ public abstract class Language extends FabricLanguageProvider {
midnightconfig(translationBuilder, "enablePolymerMode", "Enable Polymer Mode");
midnightconfig(translationBuilder, "enablePolymerMode.tooltip", "Allows the mod to work fully server-sided when used in combination with Polymer and FactoryTools");
midnightconfig(translationBuilder, "forcePolymerMode", "Force Polymer Mode");
midnightconfig(translationBuilder, "forcePolymerMode.tooltip", "Also enables Polymer mode for clients that have ThisRocks! installed");
midnightconfig(translationBuilder, "polymerViewDistance", "Polymer View Distance");
}
}
@@ -172,6 +174,8 @@ public abstract class Language extends FabricLanguageProvider {
midnightconfig(translationBuilder, "enablePolymerMode", "Aktiviere Polymer-Modus");
midnightconfig(translationBuilder, "enablePolymerMode.tooltip", "Erlaubt der Mod, komplett serverseitig zu funktionieren, wenn Polymer und FactoryTools installiert sind");
midnightconfig(translationBuilder, "forcePolymerMode", "Erzwinge Polymer-Modus");
midnightconfig(translationBuilder, "forcePolymerMode.tooltip", "Aktiviert den Polymer-Modus auch für Clients, die die ThisRocks! installiert haben");
midnightconfig(translationBuilder, "polymerViewDistance", "Polymer-Sichtweite");
}
}