From 3b156586dc8f1bd56d8a37319d093e75e8f47801 Mon Sep 17 00:00:00 2001 From: dfsek Date: Tue, 21 Jun 2022 18:21:54 -0700 Subject: [PATCH] common-ify LifecycleUtil --- .../terra/api/util/generic/pair/Pair.java | 6 ++ .../dfsek/terra/fabric/FabricEntryPoint.java | 12 +++ .../com/dfsek/terra/fabric/PlatformImpl.java | 12 +++ .../client/MinecraftClientMixin.java | 6 +- .../lifecycle/server/ServerMainMixin.java | 6 +- .../com/dfsek/terra/fabric/util/TagUtil.java | 4 +- .../dfsek/terra/forge/ForgeEntryPoint.java | 16 ++- .../com/dfsek/terra/forge/PlatformImpl.java | 6 ++ .../dfsek/terra/forge/util/LifecycleUtil.java | 102 ------------------ .../com/dfsek/terra/forge/util/TagUtil.java | 4 +- .../java/com/dfsek/terra/mod/ModPlatform.java | 10 ++ .../com/dfsek/terra/mod/util/PresetUtil.java} | 71 ++++++------ 12 files changed, 97 insertions(+), 158 deletions(-) delete mode 100644 platforms/forge/src/main/java/com/dfsek/terra/forge/util/LifecycleUtil.java rename platforms/{fabric/src/main/java/com/dfsek/terra/fabric/util/LifecycleUtil.java => mod-common/src/main/java/com/dfsek/terra/mod/util/PresetUtil.java} (65%) diff --git a/common/api/src/main/java/com/dfsek/terra/api/util/generic/pair/Pair.java b/common/api/src/main/java/com/dfsek/terra/api/util/generic/pair/Pair.java index ad4c2c879..4727b57e2 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/util/generic/pair/Pair.java +++ b/common/api/src/main/java/com/dfsek/terra/api/util/generic/pair/Pair.java @@ -11,6 +11,7 @@ import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import java.util.Objects; +import java.util.function.BiConsumer; import java.util.function.Consumer; import java.util.function.Function; import java.util.function.Predicate; @@ -145,6 +146,11 @@ public final class Pair { } } + public Pair apply(BiConsumer consumer) { + consumer.accept(this.left, this.right); + return this; + } + @Override public String toString() { return String.format("{%s,%s}", left, right); 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 d85b330e0..ca110eccf 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 @@ -24,9 +24,14 @@ import cloud.commandframework.fabric.FabricServerCommandManager; import com.dfsek.terra.api.command.CommandSender; import com.dfsek.terra.api.event.events.platform.CommandRegistrationEvent; +import com.dfsek.terra.api.event.events.platform.PlatformInitializationEvent; +import com.dfsek.terra.fabric.util.BiomeUtil; +import com.dfsek.terra.mod.CommonPlatform; + import net.fabricmc.api.ModInitializer; import net.minecraft.server.command.ServerCommandSource; import net.minecraft.util.Identifier; +import net.minecraft.util.registry.BuiltinRegistries; import net.minecraft.util.registry.Registry; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -49,6 +54,13 @@ public class FabricEntryPoint implements ModInitializer { Registry.register(Registry.BIOME_SOURCE, new Identifier("terra:terra"), Codecs.TERRA_BIOME_SOURCE); } + public static void initialize() { + getPlatform().getEventManager().callEvent( + new PlatformInitializationEvent()); + BiomeUtil.registerBiomes(); + CommonPlatform.get().registerWorldTypes((id, preset) -> BuiltinRegistries.add(BuiltinRegistries.WORLD_PRESET, id, preset)); + } + @Override public void onInitialize() { logger.info("Initializing Terra Fabric mod..."); diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/PlatformImpl.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/PlatformImpl.java index efa3bfe17..66ddb8c67 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/PlatformImpl.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/PlatformImpl.java @@ -25,9 +25,18 @@ import com.dfsek.terra.fabric.util.BiomeUtil; import com.dfsek.terra.mod.CommonPlatform; import com.dfsek.terra.mod.ModPlatform; +import com.dfsek.terra.mod.generation.TerraBiomeSource; + +import com.dfsek.terra.mod.util.PresetUtil; + import net.fabricmc.loader.api.FabricLoader; import net.minecraft.MinecraftVersion; import net.minecraft.server.MinecraftServer; +import net.minecraft.util.Identifier; +import net.minecraft.util.registry.BuiltinRegistries; +import net.minecraft.world.dimension.DimensionOptions; +import net.minecraft.world.gen.WorldPreset; +import net.minecraft.world.gen.chunk.ChunkGenerator; import org.jetbrains.annotations.NotNull; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -35,6 +44,9 @@ import org.slf4j.LoggerFactory; import java.io.File; import java.util.ArrayList; import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.function.BiConsumer; import com.dfsek.terra.addon.EphemeralAddon; import com.dfsek.terra.api.addon.BaseAddon; 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 index 620ebf100..b605d8cdb 100644 --- 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 @@ -17,8 +17,6 @@ package com.dfsek.terra.fabric.mixin.lifecycle.client; -import com.dfsek.terra.fabric.util.LifecycleUtil; - import net.minecraft.client.MinecraftClient; import net.minecraft.client.RunArgs; import org.spongepowered.asm.mixin.Mixin; @@ -26,9 +24,7 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; 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.util.BiomeUtil; @Mixin(MinecraftClient.class) @@ -40,6 +36,6 @@ public class MinecraftClientMixin { // sorta arbitrary position, after mod init, before window opens shift = At.Shift.BEFORE)) public void injectConstructor(RunArgs args, CallbackInfo callbackInfo) { - LifecycleUtil.initialize(); + FabricEntryPoint.initialize(); } } 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 index ecf5e933b..16e107631 100644 --- 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 @@ -17,16 +17,12 @@ package com.dfsek.terra.fabric.mixin.lifecycle.server; -import com.dfsek.terra.fabric.util.BiomeUtil; -import com.dfsek.terra.fabric.util.LifecycleUtil; - import net.minecraft.server.Main; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import com.dfsek.terra.api.event.events.platform.PlatformInitializationEvent; import com.dfsek.terra.fabric.FabricEntryPoint; @@ -39,6 +35,6 @@ public class ServerMainMixin { // after registry manager creation ) private static void injectConstructor(String[] args, CallbackInfo ci) { - LifecycleUtil.initialize(); + FabricEntryPoint.initialize(); } } diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/util/TagUtil.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/util/TagUtil.java index 78c180283..f921cba34 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/util/TagUtil.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/util/TagUtil.java @@ -2,6 +2,8 @@ package com.dfsek.terra.fabric.util; import com.dfsek.terra.mod.util.MinecraftUtil; +import com.dfsek.terra.mod.util.PresetUtil; + import com.google.common.collect.ImmutableMap; import net.minecraft.tag.TagKey; import net.minecraft.tag.WorldPresetTags; @@ -38,7 +40,7 @@ public final class TagUtil { logger.info("Doing preset tag garbage...."); Map, List>> collect = tagsToMutableMap(registry); - LifecycleUtil + PresetUtil .getPresets() .forEach(id -> MinecraftUtil .getEntry(registry, id) diff --git a/platforms/forge/src/main/java/com/dfsek/terra/forge/ForgeEntryPoint.java b/platforms/forge/src/main/java/com/dfsek/terra/forge/ForgeEntryPoint.java index 5208f01ec..dbc919781 100644 --- a/platforms/forge/src/main/java/com/dfsek/terra/forge/ForgeEntryPoint.java +++ b/platforms/forge/src/main/java/com/dfsek/terra/forge/ForgeEntryPoint.java @@ -17,8 +17,12 @@ package com.dfsek.terra.forge; +import com.dfsek.terra.api.event.events.platform.PlatformInitializationEvent; +import com.dfsek.terra.forge.util.BiomeUtil; + import net.minecraft.util.Identifier; import net.minecraft.util.registry.Registry; +import net.minecraft.world.biome.Biome; import net.minecraftforge.eventbus.api.EventPriority; import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.eventbus.api.SubscribeEvent; @@ -28,12 +32,12 @@ import net.minecraftforge.fml.common.Mod.EventBusSubscriber.Bus; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import net.minecraftforge.registries.ForgeRegistries.Keys; import net.minecraftforge.registries.RegisterEvent; +import net.minecraftforge.registries.RegisterEvent.RegisterHelper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.dfsek.terra.forge.AwfulForgeHacks.RegistrySanityCheck; import com.dfsek.terra.forge.AwfulForgeHacks.RegistryStep; -import com.dfsek.terra.forge.util.LifecycleUtil; import com.dfsek.terra.mod.data.Codecs; @@ -62,11 +66,17 @@ public class ForgeEntryPoint { modEventBus.register(this); } + public static void initialize(RegisterHelper helper) { + getPlatform().getEventManager().callEvent( + new PlatformInitializationEvent()); + BiomeUtil.registerBiomes(helper); + } + @SubscribeEvent(priority = EventPriority.LOWEST) public void registerBiomes(RegisterEvent event) { event.register(Keys.BLOCKS, helper -> sanityCheck.progress(RegistryStep.BLOCK, () -> logger.debug("Block registration detected."))); - event.register(Keys.BIOMES, helper -> sanityCheck.progress(RegistryStep.BIOME, () -> LifecycleUtil.initialize(helper))); - event.register(Registry.WORLD_PRESET_KEY, helper -> sanityCheck.progress(RegistryStep.WORLD_TYPE, () -> LifecycleUtil.registerWorldTypes(helper))); + event.register(Keys.BIOMES, helper -> sanityCheck.progress(RegistryStep.BIOME, () -> initialize(helper))); + event.register(Registry.WORLD_PRESET_KEY, helper -> sanityCheck.progress(RegistryStep.WORLD_TYPE, () -> TERRA_PLUGIN.registerWorldTypes(helper::register))); event.register(Registry.CHUNK_GENERATOR_KEY, helper -> helper.register(new Identifier("terra:terra"), Codecs.MINECRAFT_CHUNK_GENERATOR_WRAPPER)); diff --git a/platforms/forge/src/main/java/com/dfsek/terra/forge/PlatformImpl.java b/platforms/forge/src/main/java/com/dfsek/terra/forge/PlatformImpl.java index 294fa01d9..b3996a9d8 100644 --- a/platforms/forge/src/main/java/com/dfsek/terra/forge/PlatformImpl.java +++ b/platforms/forge/src/main/java/com/dfsek/terra/forge/PlatformImpl.java @@ -20,8 +20,13 @@ package com.dfsek.terra.forge; import ca.solostudios.strata.Versions; import ca.solostudios.strata.parser.tokenizer.ParseException; import ca.solostudios.strata.version.Version; + +import com.dfsek.terra.mod.util.PresetUtil; + import net.minecraft.MinecraftVersion; import net.minecraft.server.MinecraftServer; +import net.minecraft.util.Identifier; +import net.minecraft.world.gen.WorldPreset; import net.minecraftforge.fml.loading.FMLLoader; import net.minecraftforge.server.ServerLifecycleHooks; import org.jetbrains.annotations.NotNull; @@ -31,6 +36,7 @@ import org.slf4j.LoggerFactory; import java.io.File; import java.util.ArrayList; import java.util.List; +import java.util.function.BiConsumer; import com.dfsek.terra.addon.EphemeralAddon; import com.dfsek.terra.api.addon.BaseAddon; diff --git a/platforms/forge/src/main/java/com/dfsek/terra/forge/util/LifecycleUtil.java b/platforms/forge/src/main/java/com/dfsek/terra/forge/util/LifecycleUtil.java deleted file mode 100644 index abaabaa0e..000000000 --- a/platforms/forge/src/main/java/com/dfsek/terra/forge/util/LifecycleUtil.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.dfsek.terra.forge.util; - -import net.minecraft.structure.StructureSet; -import net.minecraft.util.Identifier; -import net.minecraft.util.math.noise.DoublePerlinNoiseSampler.NoiseParameters; -import net.minecraft.util.registry.BuiltinRegistries; -import net.minecraft.util.registry.Registry; -import net.minecraft.util.registry.RegistryEntry; -import net.minecraft.world.biome.Biome; -import net.minecraft.world.biome.source.MultiNoiseBiomeSource; -import net.minecraft.world.biome.source.TheEndBiomeSource; -import net.minecraft.world.dimension.DimensionOptions; -import net.minecraft.world.dimension.DimensionType; -import net.minecraft.world.dimension.DimensionTypes; -import net.minecraft.world.gen.WorldPreset; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.chunk.ChunkGeneratorSettings; -import net.minecraft.world.gen.chunk.NoiseChunkGenerator; -import net.minecraftforge.registries.RegisterEvent.RegisterHelper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.ArrayList; -import java.util.List; -import java.util.Locale; -import java.util.Map; - -import com.dfsek.terra.api.event.events.platform.PlatformInitializationEvent; -import com.dfsek.terra.forge.ForgeEntryPoint; -import com.dfsek.terra.mod.generation.MinecraftChunkGeneratorWrapper; -import com.dfsek.terra.mod.generation.TerraBiomeSource; - - -public class LifecycleUtil { - private static final Logger LOGGER = LoggerFactory.getLogger(LifecycleUtil.class); - - private static final List PRESETS = new ArrayList<>(); - public static void initialize(RegisterHelper helper) { - ForgeEntryPoint.getPlatform().getEventManager().callEvent( - new PlatformInitializationEvent()); - BiomeUtil.registerBiomes(helper); - } - - public static void registerWorldTypes(RegisterHelper helper) { - LOGGER.info("Registering Terra world types..."); - - Registry dimensionTypeRegistry = BuiltinRegistries.DIMENSION_TYPE; - Registry chunkGeneratorSettingsRegistry = BuiltinRegistries.CHUNK_GENERATOR_SETTINGS; - Registry structureSetRegistry = BuiltinRegistries.STRUCTURE_SET; - Registry noiseParametersRegistry = BuiltinRegistries.NOISE_PARAMETERS; - Registry biomeRegistry = BuiltinRegistries.BIOME; - - RegistryEntry theNetherDimensionType = dimensionTypeRegistry.getOrCreateEntry(DimensionTypes.THE_NETHER); - RegistryEntry - netherChunkGeneratorSettings = chunkGeneratorSettingsRegistry.getOrCreateEntry(ChunkGeneratorSettings.NETHER); - DimensionOptions netherDimensionOptions = new DimensionOptions(theNetherDimensionType, - new NoiseChunkGenerator(structureSetRegistry, - noiseParametersRegistry, - MultiNoiseBiomeSource.Preset.NETHER.getBiomeSource( - biomeRegistry), - netherChunkGeneratorSettings)); - RegistryEntry theEndDimensionType = dimensionTypeRegistry.getOrCreateEntry(DimensionTypes.THE_END); - RegistryEntry endChunkGeneratorSettings = chunkGeneratorSettingsRegistry.getOrCreateEntry( - ChunkGeneratorSettings.END); - DimensionOptions endDimensionOptions = new DimensionOptions(theEndDimensionType, - new NoiseChunkGenerator(structureSetRegistry, noiseParametersRegistry, - new TheEndBiomeSource(biomeRegistry), - endChunkGeneratorSettings)); - - RegistryEntry overworldDimensionType = dimensionTypeRegistry.getOrCreateEntry(DimensionTypes.OVERWORLD); - - RegistryEntry overworld = chunkGeneratorSettingsRegistry.getOrCreateEntry(ChunkGeneratorSettings.OVERWORLD); - ForgeEntryPoint - .getPlatform() - .getRawConfigRegistry() - .forEach((id, pack) -> { - Identifier generatorID = Identifier.of("terra", pack.getID().toLowerCase(Locale.ROOT) + "/" + pack.getNamespace().toLowerCase( - Locale.ROOT)); - - PRESETS.add(generatorID); - - TerraBiomeSource biomeSource = new TerraBiomeSource(biomeRegistry, pack); - ChunkGenerator generator = new MinecraftChunkGeneratorWrapper(structureSetRegistry, biomeSource, pack, overworld); - - DimensionOptions dimensionOptions = new DimensionOptions(overworldDimensionType, generator); - WorldPreset preset = new WorldPreset( - Map.of( - DimensionOptions.OVERWORLD, dimensionOptions, - DimensionOptions.NETHER, netherDimensionOptions, - DimensionOptions.END, endDimensionOptions - ) - ); - helper.register(generatorID, preset); - LOGGER.info("Registered world type \"{}\"", generatorID); - } - ); - } - - public static List getPresets() { - return PRESETS; - } -} diff --git a/platforms/forge/src/main/java/com/dfsek/terra/forge/util/TagUtil.java b/platforms/forge/src/main/java/com/dfsek/terra/forge/util/TagUtil.java index 38a1e2237..462a6719e 100644 --- a/platforms/forge/src/main/java/com/dfsek/terra/forge/util/TagUtil.java +++ b/platforms/forge/src/main/java/com/dfsek/terra/forge/util/TagUtil.java @@ -2,6 +2,8 @@ package com.dfsek.terra.forge.util; import com.dfsek.terra.mod.util.MinecraftUtil; +import com.dfsek.terra.mod.util.PresetUtil; + import com.google.common.collect.ImmutableMap; import net.minecraft.tag.TagKey; import net.minecraft.tag.WorldPresetTags; @@ -38,7 +40,7 @@ public final class TagUtil { logger.info("Doing preset tag garbage...."); Map, List>> collect = tagsToMutableMap(registry); - LifecycleUtil + PresetUtil .getPresets() .forEach(id -> MinecraftUtil .getEntry(registry, id) diff --git a/platforms/mod-common/src/main/java/com/dfsek/terra/mod/ModPlatform.java b/platforms/mod-common/src/main/java/com/dfsek/terra/mod/ModPlatform.java index 48fa219c2..5a75d0cc2 100644 --- a/platforms/mod-common/src/main/java/com/dfsek/terra/mod/ModPlatform.java +++ b/platforms/mod-common/src/main/java/com/dfsek/terra/mod/ModPlatform.java @@ -12,6 +12,8 @@ import com.dfsek.terra.api.world.biome.PlatformBiome; import com.dfsek.terra.mod.config.ProtoPlatformBiome; +import com.dfsek.terra.mod.util.PresetUtil; + import net.minecraft.command.CommandSource; import net.minecraft.server.MinecraftServer; import net.minecraft.util.Identifier; @@ -19,14 +21,22 @@ import net.minecraft.util.registry.BuiltinRegistries; import net.minecraft.world.biome.Biome; import net.minecraft.world.biome.Biome.Precipitation; import net.minecraft.world.biome.BiomeEffects.GrassColorModifier; +import net.minecraft.world.gen.WorldPreset; import java.util.List; import java.util.Locale; +import java.util.function.BiConsumer; +import java.util.function.Consumer; public abstract class ModPlatform extends AbstractPlatform { public abstract MinecraftServer getServer(); + public void registerWorldTypes(BiConsumer registerFunction) { + getRawConfigRegistry() + .forEach(pack -> PresetUtil.createDefault(pack).apply(registerFunction)); + } + @Override public void register(TypeRegistry registry) { super.register(registry); diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/util/LifecycleUtil.java b/platforms/mod-common/src/main/java/com/dfsek/terra/mod/util/PresetUtil.java similarity index 65% rename from platforms/fabric/src/main/java/com/dfsek/terra/fabric/util/LifecycleUtil.java rename to platforms/mod-common/src/main/java/com/dfsek/terra/mod/util/PresetUtil.java index d91d4e263..7b3e57ca5 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/util/LifecycleUtil.java +++ b/platforms/mod-common/src/main/java/com/dfsek/terra/mod/util/PresetUtil.java @@ -1,7 +1,8 @@ -package com.dfsek.terra.fabric.util; +package com.dfsek.terra.mod.util; -import com.dfsek.terra.api.event.events.platform.PlatformInitializationEvent; -import com.dfsek.terra.fabric.FabricEntryPoint; +import com.dfsek.terra.api.config.ConfigPack; + +import com.dfsek.terra.api.util.generic.pair.Pair; import com.dfsek.terra.mod.generation.MinecraftChunkGeneratorWrapper; import com.dfsek.terra.mod.generation.TerraBiomeSource; @@ -30,24 +31,17 @@ import java.util.Locale; import java.util.Map; -public class LifecycleUtil { - private static final Logger LOGGER = LoggerFactory.getLogger(LifecycleUtil.class); - +public class PresetUtil { + private static final Logger LOGGER = LoggerFactory.getLogger(PresetUtil.class); private static final List PRESETS = new ArrayList<>(); - public static void initialize() { - FabricEntryPoint.getPlatform().getEventManager().callEvent( - new PlatformInitializationEvent()); - BiomeUtil.registerBiomes(); - - - LOGGER.info("Registering Terra world types..."); - + + public static Pair createDefault(ConfigPack pack) { Registry dimensionTypeRegistry = BuiltinRegistries.DIMENSION_TYPE; Registry chunkGeneratorSettingsRegistry = BuiltinRegistries.CHUNK_GENERATOR_SETTINGS; Registry structureSetRegistry = BuiltinRegistries.STRUCTURE_SET; Registry noiseParametersRegistry = BuiltinRegistries.NOISE_PARAMETERS; Registry biomeRegistry = BuiltinRegistries.BIOME; - + RegistryEntry theNetherDimensionType = dimensionTypeRegistry.getOrCreateEntry(DimensionTypes.THE_NETHER); RegistryEntry netherChunkGeneratorSettings = chunkGeneratorSettingsRegistry.getOrCreateEntry(ChunkGeneratorSettings.NETHER); @@ -64,34 +58,29 @@ public class LifecycleUtil { new NoiseChunkGenerator(structureSetRegistry, noiseParametersRegistry, new TheEndBiomeSource(biomeRegistry), endChunkGeneratorSettings)); - + RegistryEntry overworldDimensionType = dimensionTypeRegistry.getOrCreateEntry(DimensionTypes.OVERWORLD); - + RegistryEntry overworld = chunkGeneratorSettingsRegistry.getOrCreateEntry(ChunkGeneratorSettings.OVERWORLD); - FabricEntryPoint - .getPlatform() - .getRawConfigRegistry() - .forEach((id, pack) -> { - Identifier generatorID = Identifier.of("terra", pack.getID().toLowerCase(Locale.ROOT) + "/" + pack.getNamespace().toLowerCase( - Locale.ROOT)); - - PRESETS.add(generatorID); - - TerraBiomeSource biomeSource = new TerraBiomeSource(biomeRegistry, pack); - ChunkGenerator generator = new MinecraftChunkGeneratorWrapper(structureSetRegistry, biomeSource, pack, overworld); - - DimensionOptions dimensionOptions = new DimensionOptions(overworldDimensionType, generator); - WorldPreset preset = new WorldPreset( - Map.of( - DimensionOptions.OVERWORLD, dimensionOptions, - DimensionOptions.NETHER, netherDimensionOptions, - DimensionOptions.END, endDimensionOptions - ) - ); - BuiltinRegistries.add(BuiltinRegistries.WORLD_PRESET, generatorID, preset); - LOGGER.info("Registered world type \"{}\"", generatorID); - } - ); + + Identifier generatorID = Identifier.of("terra", pack.getID().toLowerCase(Locale.ROOT) + "/" + pack.getNamespace().toLowerCase( + Locale.ROOT)); + + PRESETS.add(generatorID); + + TerraBiomeSource biomeSource = new TerraBiomeSource(biomeRegistry, pack); + ChunkGenerator generator = new MinecraftChunkGeneratorWrapper(structureSetRegistry, biomeSource, pack, overworld); + + DimensionOptions dimensionOptions = new DimensionOptions(overworldDimensionType, generator); + WorldPreset preset = new WorldPreset( + Map.of( + DimensionOptions.OVERWORLD, dimensionOptions, + DimensionOptions.NETHER, netherDimensionOptions, + DimensionOptions.END, endDimensionOptions + ) + ); + LOGGER.info("Created world type \"{}\"", generatorID); + return Pair.of(generatorID, preset); } public static List getPresets() {