From af90088505977cac679039f10912e58d0235bd83 Mon Sep 17 00:00:00 2001 From: dfsek Date: Tue, 24 May 2022 23:53:23 -0700 Subject: [PATCH] remove unneeded lifecycle mixins --- .../dfsek/terra/fabric/FabricEntryPoint.java | 25 +++++++- .../fabric/generation/TerraBiomeSource.java | 16 +---- .../client/MinecraftClientMixin.java | 62 ------------------- .../lifecycle/server/ServerMainMixin.java | 51 --------------- .../terra/fabric/util/ProtoPlatformBiome.java | 1 + .../src/main/resources/terra.mixins.json | 6 +- 6 files changed, 28 insertions(+), 133 deletions(-) delete mode 100644 platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/client/MinecraftClientMixin.java delete mode 100644 platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/server/ServerMainMixin.java diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/FabricEntryPoint.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/FabricEntryPoint.java index b77257753..8cfd766be 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/FabricEntryPoint.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/FabricEntryPoint.java @@ -19,8 +19,18 @@ package com.dfsek.terra.fabric; import cloud.commandframework.execution.CommandExecutionCoordinator; import cloud.commandframework.fabric.FabricServerCommandManager; + +import com.dfsek.terra.api.event.events.platform.PlatformInitializationEvent; +import com.dfsek.terra.fabric.generation.TerraGeneratorType; +import com.dfsek.terra.fabric.mixin.access.GeneratorTypeAccessor; +import com.dfsek.terra.fabric.util.FabricUtil; + +import net.fabricmc.api.EnvType; import net.fabricmc.api.ModInitializer; +import net.fabricmc.loader.api.FabricLoader; +import net.minecraft.client.world.GeneratorType; import net.minecraft.server.command.ServerCommandSource; +import net.minecraft.text.LiteralText; import net.minecraft.util.Identifier; import net.minecraft.util.registry.Registry; import org.slf4j.Logger; @@ -49,7 +59,20 @@ public class FabricEntryPoint implements ModInitializer { @Override public void onInitialize() { logger.info("Initializing Terra Fabric mod..."); - + + FabricEntryPoint.getPlatform().getEventManager().callEvent(new PlatformInitializationEvent()); + + if(FabricLoader.getInstance().getEnvironmentType() == EnvType.CLIENT) { + FabricEntryPoint.getPlatform().getConfigRegistry().forEach(pack -> { + final GeneratorType generatorType = new TerraGeneratorType(pack); + //noinspection ConstantConditions + ((GeneratorTypeAccessor) generatorType).setDisplayName(new LiteralText("Terra:" + pack.getID())); + GeneratorTypeAccessor.getValues().add(1, generatorType); + }); + } + + FabricUtil.registerBiomes(); + FabricServerCommandManager manager = new FabricServerCommandManager<>( CommandExecutionCoordinator.simpleCoordinator(), serverCommandSource -> (CommandSender) serverCommandSource, diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/TerraBiomeSource.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/TerraBiomeSource.java index ffdf8062f..c3b8b29fb 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/TerraBiomeSource.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/TerraBiomeSource.java @@ -46,10 +46,7 @@ public class TerraBiomeSource extends BiomeSource { .stream(pack.getBiomeProvider() .getBiomes() .spliterator(), false) - .map(b -> ((ProtoPlatformBiome) b.getPlatformBiome()).getDelegate())); - biomes.streamEntries().forEach(biomeReference -> { - System.out.println(biomeReference.getKey().orElseThrow()); - }); + .map(b -> biomes.entryOf(((ProtoPlatformBiome) b.getPlatformBiome()).getDelegate().getKey().orElseThrow()))); /* A little (unfortunately, required) jank to watch out for: @@ -77,17 +74,6 @@ public class TerraBiomeSource extends BiomeSource { @Override public RegistryEntry getBiome(int biomeX, int biomeY, int biomeZ, MultiNoiseSampler noiseSampler) { - /*return biomeRegistry - .getEntry(((ProtoPlatformBiome) pack - .getBiomeProvider() - .getBiome(biomeX << 2, biomeZ << 2, seed) - .getPlatformBiome()) - .getDelegate() - .getKey() - .orElseThrow()) - .orElseThrow(); - - */ return biomeRegistry.entryOf(((ProtoPlatformBiome) pack .getBiomeProvider() .getBiome(biomeX << 2, biomeZ << 2, seed) diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/client/MinecraftClientMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/client/MinecraftClientMixin.java deleted file mode 100644 index fd6ac0ad5..000000000 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/client/MinecraftClientMixin.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - * This file is part of Terra. - * - * Terra is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Terra is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Terra. If not, see . - */ - -package com.dfsek.terra.fabric.mixin.lifecycle.client; - -import com.dfsek.terra.fabric.util.FabricUtil; - -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.RunArgs; -import net.minecraft.client.world.GeneratorType; -import net.minecraft.text.LiteralText; -import net.minecraft.util.registry.DynamicRegistryManager; -import net.minecraft.util.registry.DynamicRegistryManager.Mutable; -import net.minecraft.util.registry.Registry; -import org.slf4j.Logger; -import org.spongepowered.asm.mixin.Final; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.Redirect; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -import com.dfsek.terra.api.event.events.platform.PlatformInitializationEvent; -import com.dfsek.terra.fabric.FabricEntryPoint; -import com.dfsek.terra.fabric.generation.TerraGeneratorType; -import com.dfsek.terra.fabric.mixin.access.GeneratorTypeAccessor; - - -@Mixin(MinecraftClient.class) -public class MinecraftClientMixin { - @Inject(method = "", at = @At(value = "INVOKE", - target = "Lnet/minecraft/client/util/WindowProvider;createWindow" + - "(Lnet/minecraft/client/WindowSettings;Ljava/lang/String;Ljava/lang/String;)" + - "Lnet/minecraft/client/util/Window;", - // sorta arbitrary position, after mod init, before window opens - shift = At.Shift.BEFORE)) - public void injectConstructor(RunArgs args, CallbackInfo callbackInfo) { - FabricEntryPoint.getPlatform().getEventManager().callEvent(new PlatformInitializationEvent()); - FabricEntryPoint.getPlatform().getConfigRegistry().forEach(pack -> { - final GeneratorType generatorType = new TerraGeneratorType(pack); - //noinspection ConstantConditions - ((GeneratorTypeAccessor) generatorType).setDisplayName(new LiteralText("Terra:" + pack.getID())); - GeneratorTypeAccessor.getValues().add(1, generatorType); - }); - FabricUtil.registerBiomes(); - } -} diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/server/ServerMainMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/server/ServerMainMixin.java deleted file mode 100644 index 133e37798..000000000 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/server/ServerMainMixin.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * This file is part of Terra. - * - * Terra is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Terra is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Terra. If not, see . - */ - -package com.dfsek.terra.fabric.mixin.lifecycle.server; - -import com.dfsek.terra.fabric.util.FabricUtil; - -import net.minecraft.server.Main; -import net.minecraft.util.registry.DynamicRegistryManager; -import net.minecraft.util.registry.DynamicRegistryManager.Mutable; -import net.minecraft.util.registry.Registry; -import org.slf4j.Logger; -import org.spongepowered.asm.mixin.Final; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.Redirect; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -import com.dfsek.terra.api.event.events.platform.PlatformInitializationEvent; -import com.dfsek.terra.fabric.FabricEntryPoint; - - -@Mixin(Main.class) -public class ServerMainMixin { - @Inject(method = "main([Ljava/lang/String;)V", - at = @At(value = "INVOKE", - target = "Lnet/minecraft/resource/ResourcePackManager;(Lnet/minecraft/resource/ResourceType;[Lnet/minecraft/resource/ResourcePackProvider;)V") // after registry manager creation - ) - private static void injectConstructor(String[] args, CallbackInfo ci) { - FabricEntryPoint.getPlatform().getEventManager().callEvent( - new PlatformInitializationEvent()); // Load during MinecraftServer construction, after other mods have registered blocks - // and stuff - FabricUtil.registerBiomes(); - } -} diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/util/ProtoPlatformBiome.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/util/ProtoPlatformBiome.java index e710dff91..379bfc9f0 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/util/ProtoPlatformBiome.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/util/ProtoPlatformBiome.java @@ -20,6 +20,7 @@ package com.dfsek.terra.fabric.util; import net.minecraft.util.Identifier; import net.minecraft.util.registry.Registry; import net.minecraft.util.registry.RegistryEntry; +import net.minecraft.util.registry.RegistryKey; import net.minecraft.world.biome.Biome; import java.util.Objects; diff --git a/platforms/fabric/src/main/resources/terra.mixins.json b/platforms/fabric/src/main/resources/terra.mixins.json index a203ea8c4..90a3bdef9 100644 --- a/platforms/fabric/src/main/resources/terra.mixins.json +++ b/platforms/fabric/src/main/resources/terra.mixins.json @@ -36,12 +36,10 @@ "lifecycle.RegistryMixin" ], "client": [ - "access.GeneratorTypeAccessor", - "lifecycle.client.MinecraftClientMixin" + "access.GeneratorTypeAccessor" ], "server": [ - "lifecycle.server.GeneratorOptionsMixin", - "lifecycle.server.ServerMainMixin" + "lifecycle.server.GeneratorOptionsMixin" ], "injectors": { "defaultRequire": 1