mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-06-17 14:21:08 +00:00
continue registry wrangling
This commit is contained in:
@@ -6,6 +6,7 @@ import com.dfsek.tectonic.api.exception.LoadException;
|
|||||||
import net.minecraft.entity.EntityType;
|
import net.minecraft.entity.EntityType;
|
||||||
import net.minecraft.entity.SpawnGroup;
|
import net.minecraft.entity.SpawnGroup;
|
||||||
import net.minecraft.registry.DynamicRegistryManager;
|
import net.minecraft.registry.DynamicRegistryManager;
|
||||||
|
import net.minecraft.registry.Registry;
|
||||||
import net.minecraft.registry.RegistryKeys;
|
import net.minecraft.registry.RegistryKeys;
|
||||||
import net.minecraft.server.MinecraftServer;
|
import net.minecraft.server.MinecraftServer;
|
||||||
import net.minecraft.sound.BiomeAdditionsSound;
|
import net.minecraft.sound.BiomeAdditionsSound;
|
||||||
@@ -14,13 +15,16 @@ import net.minecraft.sound.MusicSound;
|
|||||||
import net.minecraft.sound.SoundEvent;
|
import net.minecraft.sound.SoundEvent;
|
||||||
import net.minecraft.util.Identifier;
|
import net.minecraft.util.Identifier;
|
||||||
import net.minecraft.village.VillagerType;
|
import net.minecraft.village.VillagerType;
|
||||||
|
import net.minecraft.world.biome.Biome;
|
||||||
import net.minecraft.world.biome.Biome.Precipitation;
|
import net.minecraft.world.biome.Biome.Precipitation;
|
||||||
import net.minecraft.world.biome.Biome.TemperatureModifier;
|
import net.minecraft.world.biome.Biome.TemperatureModifier;
|
||||||
import net.minecraft.world.biome.BiomeEffects.GrassColorModifier;
|
import net.minecraft.world.biome.BiomeEffects.GrassColorModifier;
|
||||||
import net.minecraft.world.biome.BiomeParticleConfig;
|
import net.minecraft.world.biome.BiomeParticleConfig;
|
||||||
import net.minecraft.world.biome.SpawnSettings;
|
import net.minecraft.world.biome.SpawnSettings;
|
||||||
import net.minecraft.world.biome.SpawnSettings.SpawnEntry;
|
import net.minecraft.world.biome.SpawnSettings.SpawnEntry;
|
||||||
|
import net.minecraft.world.dimension.DimensionType;
|
||||||
import net.minecraft.world.gen.WorldPreset;
|
import net.minecraft.world.gen.WorldPreset;
|
||||||
|
import net.minecraft.world.gen.chunk.ChunkGeneratorSettings;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -58,7 +62,7 @@ public abstract class ModPlatform extends AbstractPlatform {
|
|||||||
|
|
||||||
public void registerWorldTypes(BiConsumer<Identifier, WorldPreset> registerFunction) {
|
public void registerWorldTypes(BiConsumer<Identifier, WorldPreset> registerFunction) {
|
||||||
getRawConfigRegistry()
|
getRawConfigRegistry()
|
||||||
.forEach(pack -> PresetUtil.createDefault(pack, getMinecraftRegistry()).apply(registerFunction));
|
.forEach(pack -> PresetUtil.createDefault(pack, this).apply(registerFunction));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -95,7 +99,7 @@ public abstract class ModPlatform extends AbstractPlatform {
|
|||||||
|
|
||||||
private ProtoPlatformBiome parseBiome(String id, DepthTracker tracker) throws LoadException {
|
private ProtoPlatformBiome parseBiome(String id, DepthTracker tracker) throws LoadException {
|
||||||
Identifier identifier = Identifier.tryParse(id);
|
Identifier identifier = Identifier.tryParse(id);
|
||||||
if(getMinecraftRegistry().get(RegistryKeys.BIOME).get(identifier) == null) throw new LoadException("Invalid Biome ID: " + identifier, tracker); // failure.
|
if(!biomeRegistry().containsId(identifier)) throw new LoadException("Invalid Biome ID: " + identifier, tracker); // failure.
|
||||||
return new ProtoPlatformBiome(identifier);
|
return new ProtoPlatformBiome(identifier);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -106,7 +110,9 @@ public abstract class ModPlatform extends AbstractPlatform {
|
|||||||
|
|
||||||
protected abstract BaseAddon getPlatformAddon();
|
protected abstract BaseAddon getPlatformAddon();
|
||||||
|
|
||||||
public abstract DynamicRegistryManager getMinecraftRegistry();
|
public abstract Registry<DimensionType> dimensionTypeRegistry();
|
||||||
|
public abstract Registry<Biome> biomeRegistry();
|
||||||
|
public abstract Registry<ChunkGeneratorSettings> chunkGeneratorSettingsRegistry();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public @NotNull WorldHandle getWorldHandle() {
|
public @NotNull WorldHandle getWorldHandle() {
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
package com.dfsek.terra.mod.util;
|
package com.dfsek.terra.mod.util;
|
||||||
|
|
||||||
|
import com.dfsek.terra.mod.ModPlatform;
|
||||||
|
|
||||||
import net.minecraft.registry.DynamicRegistryManager;
|
import net.minecraft.registry.DynamicRegistryManager;
|
||||||
import net.minecraft.registry.Registry;
|
import net.minecraft.registry.Registry;
|
||||||
import net.minecraft.registry.RegistryKeys;
|
import net.minecraft.registry.RegistryKeys;
|
||||||
@@ -33,10 +35,9 @@ public class PresetUtil {
|
|||||||
private static final Logger LOGGER = LoggerFactory.getLogger(PresetUtil.class);
|
private static final Logger LOGGER = LoggerFactory.getLogger(PresetUtil.class);
|
||||||
private static final List<Identifier> PRESETS = new ArrayList<>();
|
private static final List<Identifier> PRESETS = new ArrayList<>();
|
||||||
|
|
||||||
public static Pair<Identifier, WorldPreset> createDefault(ConfigPack pack, DynamicRegistryManager registryManager) {
|
public static Pair<Identifier, WorldPreset> createDefault(ConfigPack pack, ModPlatform platform) {
|
||||||
Registry<DimensionType> dimensionTypeRegistry = registryManager.get(RegistryKeys.DIMENSION_TYPE);
|
Registry<DimensionType> dimensionTypeRegistry = platform.dimensionTypeRegistry();
|
||||||
Registry<ChunkGeneratorSettings> chunkGeneratorSettingsRegistry = registryManager.get(RegistryKeys.CHUNK_GENERATOR_SETTINGS);
|
Registry<ChunkGeneratorSettings> chunkGeneratorSettingsRegistry = platform.chunkGeneratorSettingsRegistry();
|
||||||
Registry<Biome> biomeRegistry = registryManager.get(RegistryKeys.BIOME);
|
|
||||||
|
|
||||||
RegistryEntry<DimensionType> theNetherDimensionType = dimensionTypeRegistry.getEntry(DimensionTypes.THE_NETHER).orElseThrow();
|
RegistryEntry<DimensionType> theNetherDimensionType = dimensionTypeRegistry.getEntry(DimensionTypes.THE_NETHER).orElseThrow();
|
||||||
RegistryEntry<ChunkGeneratorSettings>
|
RegistryEntry<ChunkGeneratorSettings>
|
||||||
@@ -44,8 +45,7 @@ public class PresetUtil {
|
|||||||
DimensionOptions netherDimensionOptions = new DimensionOptions(theNetherDimensionType,
|
DimensionOptions netherDimensionOptions = new DimensionOptions(theNetherDimensionType,
|
||||||
new NoiseChunkGenerator(
|
new NoiseChunkGenerator(
|
||||||
MultiNoiseBiomeSource.Preset.NETHER.getBiomeSource(
|
MultiNoiseBiomeSource.Preset.NETHER.getBiomeSource(
|
||||||
registryManager.createRegistryLookup()
|
platform.biomeRegistry().getReadOnlyWrapper()),
|
||||||
.getOrThrow(RegistryKeys.BIOME)),
|
|
||||||
netherChunkGeneratorSettings));
|
netherChunkGeneratorSettings));
|
||||||
RegistryEntry<DimensionType> theEndDimensionType = dimensionTypeRegistry.getEntry(DimensionTypes.THE_END).orElseThrow();
|
RegistryEntry<DimensionType> theEndDimensionType = dimensionTypeRegistry.getEntry(DimensionTypes.THE_END).orElseThrow();
|
||||||
RegistryEntry<ChunkGeneratorSettings> endChunkGeneratorSettings = chunkGeneratorSettingsRegistry.getEntry(
|
RegistryEntry<ChunkGeneratorSettings> endChunkGeneratorSettings = chunkGeneratorSettingsRegistry.getEntry(
|
||||||
@@ -53,8 +53,7 @@ public class PresetUtil {
|
|||||||
DimensionOptions endDimensionOptions = new DimensionOptions(theEndDimensionType,
|
DimensionOptions endDimensionOptions = new DimensionOptions(theEndDimensionType,
|
||||||
new NoiseChunkGenerator(
|
new NoiseChunkGenerator(
|
||||||
TheEndBiomeSource.createVanilla(
|
TheEndBiomeSource.createVanilla(
|
||||||
registryManager.createRegistryLookup()
|
platform.biomeRegistry().getReadOnlyWrapper()),
|
||||||
.getOrThrow(RegistryKeys.BIOME)),
|
|
||||||
endChunkGeneratorSettings));
|
endChunkGeneratorSettings));
|
||||||
|
|
||||||
RegistryEntry<DimensionType> overworldDimensionType = dimensionTypeRegistry.getEntry(DimensionTypes.OVERWORLD).orElseThrow();
|
RegistryEntry<DimensionType> overworldDimensionType = dimensionTypeRegistry.getEntry(DimensionTypes.OVERWORLD).orElseThrow();
|
||||||
|
|||||||
+25
-7
@@ -4,7 +4,11 @@ import ca.solostudios.strata.Versions;
|
|||||||
import ca.solostudios.strata.parser.tokenizer.ParseException;
|
import ca.solostudios.strata.parser.tokenizer.ParseException;
|
||||||
import net.minecraft.MinecraftVersion;
|
import net.minecraft.MinecraftVersion;
|
||||||
import net.minecraft.registry.DynamicRegistryManager;
|
import net.minecraft.registry.DynamicRegistryManager;
|
||||||
|
import net.minecraft.registry.Registry;
|
||||||
import net.minecraft.server.MinecraftServer;
|
import net.minecraft.server.MinecraftServer;
|
||||||
|
import net.minecraft.world.biome.Biome;
|
||||||
|
import net.minecraft.world.dimension.DimensionType;
|
||||||
|
import net.minecraft.world.gen.chunk.ChunkGeneratorSettings;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
@@ -16,7 +20,6 @@ import java.util.concurrent.atomic.AtomicReference;
|
|||||||
|
|
||||||
import com.dfsek.terra.addon.EphemeralAddon;
|
import com.dfsek.terra.addon.EphemeralAddon;
|
||||||
import com.dfsek.terra.api.addon.BaseAddon;
|
import com.dfsek.terra.api.addon.BaseAddon;
|
||||||
import com.dfsek.terra.lifecycle.util.BiomeUtil;
|
|
||||||
import com.dfsek.terra.mod.CommonPlatform;
|
import com.dfsek.terra.mod.CommonPlatform;
|
||||||
import com.dfsek.terra.mod.ModPlatform;
|
import com.dfsek.terra.mod.ModPlatform;
|
||||||
import com.dfsek.terra.mod.generation.MinecraftChunkGeneratorWrapper;
|
import com.dfsek.terra.mod.generation.MinecraftChunkGeneratorWrapper;
|
||||||
@@ -26,7 +29,9 @@ public abstract class LifecyclePlatform extends ModPlatform {
|
|||||||
private static final Logger LOGGER = LoggerFactory.getLogger(LifecyclePlatform.class);
|
private static final Logger LOGGER = LoggerFactory.getLogger(LifecyclePlatform.class);
|
||||||
private static MinecraftServer server;
|
private static MinecraftServer server;
|
||||||
|
|
||||||
private static final AtomicReference<DynamicRegistryManager> DYNAMIC_REGISTRY_MANAGER = new AtomicReference<>();
|
private static final AtomicReference<Registry<Biome>> BIOMES = new AtomicReference<>();
|
||||||
|
private static final AtomicReference<Registry<DimensionType>> DIMENSIONS = new AtomicReference<>();
|
||||||
|
private static final AtomicReference<Registry<ChunkGeneratorSettings>> SETTINGS = new AtomicReference<>();
|
||||||
|
|
||||||
public LifecyclePlatform() {
|
public LifecyclePlatform() {
|
||||||
CommonPlatform.initialize(this);
|
CommonPlatform.initialize(this);
|
||||||
@@ -54,7 +59,6 @@ public abstract class LifecyclePlatform extends ModPlatform {
|
|||||||
LOGGER.warn("Failed to execute reload", throwable);
|
LOGGER.warn("Failed to execute reload", throwable);
|
||||||
return null;
|
return null;
|
||||||
}).join();
|
}).join();
|
||||||
BiomeUtil.registerBiomes(DYNAMIC_REGISTRY_MANAGER.get());
|
|
||||||
server.getWorlds().forEach(world -> {
|
server.getWorlds().forEach(world -> {
|
||||||
if(world.getChunkManager().getChunkGenerator() instanceof MinecraftChunkGeneratorWrapper chunkGeneratorWrapper) {
|
if(world.getChunkManager().getChunkGenerator() instanceof MinecraftChunkGeneratorWrapper chunkGeneratorWrapper) {
|
||||||
getConfigRegistry().get(chunkGeneratorWrapper.getPack().getRegistryKey()).ifPresent(pack -> {
|
getConfigRegistry().get(chunkGeneratorWrapper.getPack().getRegistryKey()).ifPresent(pack -> {
|
||||||
@@ -67,8 +71,12 @@ public abstract class LifecyclePlatform extends ModPlatform {
|
|||||||
return succeed;
|
return succeed;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void addRegistryManager(DynamicRegistryManager in) {
|
public static void setRegistries(Registry<Biome> biomeRegistry,
|
||||||
DYNAMIC_REGISTRY_MANAGER.set(Objects.requireNonNull(in));
|
Registry<DimensionType> dimensionTypeRegistry,
|
||||||
|
Registry<ChunkGeneratorSettings> chunkGeneratorSettingsRegistry) {
|
||||||
|
BIOMES.set(biomeRegistry);
|
||||||
|
DIMENSIONS.set(dimensionTypeRegistry);
|
||||||
|
SETTINGS.set(chunkGeneratorSettingsRegistry);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -94,8 +102,18 @@ public abstract class LifecyclePlatform extends ModPlatform {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public DynamicRegistryManager getMinecraftRegistry() {
|
public Registry<DimensionType> dimensionTypeRegistry() {
|
||||||
return DYNAMIC_REGISTRY_MANAGER.get();
|
return DIMENSIONS.get();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Registry<Biome> biomeRegistry() {
|
||||||
|
return BIOMES.get();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Registry<ChunkGeneratorSettings> chunkGeneratorSettingsRegistry() {
|
||||||
|
return SETTINGS.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected abstract Collection<BaseAddon> getPlatformMods();
|
protected abstract Collection<BaseAddon> getPlatformMods();
|
||||||
|
|||||||
+65
@@ -0,0 +1,65 @@
|
|||||||
|
package com.dfsek.terra.lifecycle.mixin.lifecycle;
|
||||||
|
|
||||||
|
import com.dfsek.terra.lifecycle.LifecyclePlatform;
|
||||||
|
|
||||||
|
import com.mojang.datafixers.util.Pair;
|
||||||
|
import net.minecraft.registry.MutableRegistry;
|
||||||
|
import net.minecraft.registry.RegistryKeys;
|
||||||
|
import net.minecraft.registry.RegistryLoader;
|
||||||
|
import net.minecraft.world.biome.Biome;
|
||||||
|
import net.minecraft.world.dimension.DimensionType;
|
||||||
|
import net.minecraft.world.gen.WorldPreset;
|
||||||
|
import net.minecraft.world.gen.chunk.ChunkGeneratorSettings;
|
||||||
|
import org.checkerframework.checker.units.qual.C;
|
||||||
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
|
import org.spongepowered.asm.mixin.injection.Redirect;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
|
import com.dfsek.terra.lifecycle.util.LifecycleUtil;
|
||||||
|
|
||||||
|
|
||||||
|
@Mixin(RegistryLoader.class)
|
||||||
|
public class RegistryLoaderMixin {
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
@Redirect(
|
||||||
|
method = "load(Lnet/minecraft/resource/ResourceManager;Lnet/minecraft/registry/DynamicRegistryManager;Ljava/util/List;)" +
|
||||||
|
"Lnet/minecraft/registry/DynamicRegistryManager$Immutable;",
|
||||||
|
at = @At(
|
||||||
|
value = "INVOKE",
|
||||||
|
target = "Ljava/util/List;forEach(Ljava/util/function/Consumer;)V",
|
||||||
|
ordinal = 1 // we want right after the first forEach
|
||||||
|
)
|
||||||
|
)
|
||||||
|
private static void grabManager(List<Pair<MutableRegistry<?>, Object>> instance, Consumer<Pair<MutableRegistry<?>, Object>> consumer) {
|
||||||
|
MutableRegistry<Biome> biomeMutableRegistry = (MutableRegistry<Biome>)
|
||||||
|
instance.stream()
|
||||||
|
.map(Pair::getFirst)
|
||||||
|
.filter(r -> r.getKey().equals(RegistryKeys.BIOME))
|
||||||
|
.findFirst()
|
||||||
|
.orElseThrow();
|
||||||
|
MutableRegistry<WorldPreset> worldPresetMutableRegistry = (MutableRegistry<WorldPreset>)
|
||||||
|
instance.stream()
|
||||||
|
.map(Pair::getFirst)
|
||||||
|
.filter(r -> r.getKey().equals(RegistryKeys.WORLD_PRESET))
|
||||||
|
.findFirst()
|
||||||
|
.orElseThrow();
|
||||||
|
MutableRegistry<DimensionType> dimensionTypeMutableRegistry = (MutableRegistry<DimensionType>)
|
||||||
|
instance.stream()
|
||||||
|
.map(Pair::getFirst)
|
||||||
|
.filter(r -> r.getKey().equals(RegistryKeys.DIMENSION_TYPE))
|
||||||
|
.findFirst()
|
||||||
|
.orElseThrow();
|
||||||
|
MutableRegistry<ChunkGeneratorSettings> chunkGeneratorSettingsMutableRegistry = (MutableRegistry<ChunkGeneratorSettings>)
|
||||||
|
instance.stream()
|
||||||
|
.map(Pair::getFirst)
|
||||||
|
.filter(r -> r.getKey().equals(RegistryKeys.CHUNK_GENERATOR_SETTINGS))
|
||||||
|
.findFirst()
|
||||||
|
.orElseThrow();
|
||||||
|
LifecyclePlatform.setRegistries(biomeMutableRegistry, dimensionTypeMutableRegistry, chunkGeneratorSettingsMutableRegistry);
|
||||||
|
LifecycleUtil.initialize(biomeMutableRegistry, worldPresetMutableRegistry);
|
||||||
|
instance.forEach(consumer);
|
||||||
|
}
|
||||||
|
}
|
||||||
-29
@@ -1,29 +0,0 @@
|
|||||||
package com.dfsek.terra.lifecycle.mixin.lifecycle;
|
|
||||||
|
|
||||||
import com.dfsek.terra.lifecycle.util.LifecycleUtil;
|
|
||||||
|
|
||||||
import net.minecraft.registry.DynamicRegistryManager;
|
|
||||||
import net.minecraft.server.SaveLoading;
|
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
|
||||||
import org.spongepowered.asm.mixin.injection.At;
|
|
||||||
import org.spongepowered.asm.mixin.injection.ModifyArg;
|
|
||||||
|
|
||||||
|
|
||||||
@Mixin(SaveLoading.class)
|
|
||||||
public class SaveLoadingMixin {
|
|
||||||
@ModifyArg(
|
|
||||||
method = "method_42097(Lnet/minecraft/registry/DynamicRegistryManager$Immutable;" +
|
|
||||||
"Lnet/minecraft/server/SaveLoading$SaveApplierFactory;Lnet/minecraft/resource/LifecycledResourceManager;" +
|
|
||||||
"Lnet/minecraft/registry/CombinedDynamicRegistries;Lnet/minecraft/server/SaveLoading$LoadContext;" +
|
|
||||||
"Lnet/minecraft/server/DataPackContents;)Ljava/lang/Object;",
|
|
||||||
at = @At(
|
|
||||||
value = "INVOKE",
|
|
||||||
target = "Lnet/minecraft/server/DataPackContents;refresh(Lnet/minecraft/registry/DynamicRegistryManager;)V"
|
|
||||||
),
|
|
||||||
index = 0
|
|
||||||
)
|
|
||||||
private static DynamicRegistryManager grabManager(DynamicRegistryManager in) {
|
|
||||||
LifecycleUtil.initialize(in);
|
|
||||||
return in;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+1
-2
@@ -30,8 +30,7 @@ public final class BiomeUtil {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void registerBiomes(DynamicRegistryManager registryManager) {
|
public static void registerBiomes(Registry<net.minecraft.world.biome.Biome> biomeRegistry) {
|
||||||
Registry<net.minecraft.world.biome.Biome> biomeRegistry = registryManager.get(RegistryKeys.BIOME);
|
|
||||||
logger.info("Registering biomes...");
|
logger.info("Registering biomes...");
|
||||||
CommonPlatform.get().getConfigRegistry().forEach(pack -> { // Register all Terra biomes.
|
CommonPlatform.get().getConfigRegistry().forEach(pack -> { // Register all Terra biomes.
|
||||||
pack.getCheckedRegistry(Biome.class)
|
pack.getCheckedRegistry(Biome.class)
|
||||||
|
|||||||
+7
-4
@@ -3,22 +3,25 @@ package com.dfsek.terra.lifecycle.util;
|
|||||||
import com.dfsek.terra.lifecycle.LifecyclePlatform;
|
import com.dfsek.terra.lifecycle.LifecyclePlatform;
|
||||||
|
|
||||||
import net.minecraft.registry.DynamicRegistryManager;
|
import net.minecraft.registry.DynamicRegistryManager;
|
||||||
|
import net.minecraft.registry.MutableRegistry;
|
||||||
import net.minecraft.registry.Registry;
|
import net.minecraft.registry.Registry;
|
||||||
import net.minecraft.registry.RegistryKeys;
|
import net.minecraft.registry.RegistryKeys;
|
||||||
|
|
||||||
import com.dfsek.terra.api.event.events.platform.PlatformInitializationEvent;
|
import com.dfsek.terra.api.event.events.platform.PlatformInitializationEvent;
|
||||||
import com.dfsek.terra.mod.CommonPlatform;
|
import com.dfsek.terra.mod.CommonPlatform;
|
||||||
|
|
||||||
|
import net.minecraft.world.biome.Biome;
|
||||||
|
import net.minecraft.world.gen.WorldPreset;
|
||||||
|
|
||||||
|
|
||||||
public final class LifecycleUtil {
|
public final class LifecycleUtil {
|
||||||
private LifecycleUtil() {
|
private LifecycleUtil() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void initialize(DynamicRegistryManager registryManager) {
|
public static void initialize(MutableRegistry<Biome> biomeMutableRegistry, MutableRegistry<WorldPreset> worldPresetMutableRegistry) {
|
||||||
LifecyclePlatform.addRegistryManager(registryManager);
|
|
||||||
CommonPlatform.get().getEventManager().callEvent(new PlatformInitializationEvent());
|
CommonPlatform.get().getEventManager().callEvent(new PlatformInitializationEvent());
|
||||||
BiomeUtil.registerBiomes(registryManager);
|
BiomeUtil.registerBiomes(biomeMutableRegistry);
|
||||||
CommonPlatform.get().registerWorldTypes((id, preset) -> Registry.register(registryManager.get(RegistryKeys.WORLD_PRESET), id, preset));
|
CommonPlatform.get().registerWorldTypes((id, preset) -> Registry.register(worldPresetMutableRegistry, id, preset));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,8 +6,8 @@
|
|||||||
"mixins" : [
|
"mixins" : [
|
||||||
"NoiseConfigMixin",
|
"NoiseConfigMixin",
|
||||||
"RegistryMixin",
|
"RegistryMixin",
|
||||||
"lifecycle.SaveLoadingMixin",
|
"lifecycle.MinecraftServerMixin",
|
||||||
"lifecycle.MinecraftServerMixin"
|
"lifecycle.RegistryLoaderMixin"
|
||||||
],
|
],
|
||||||
"client" : [
|
"client" : [
|
||||||
],
|
],
|
||||||
|
|||||||
Reference in New Issue
Block a user