mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-06-17 22:31:52 +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.SpawnGroup;
|
||||
import net.minecraft.registry.DynamicRegistryManager;
|
||||
import net.minecraft.registry.Registry;
|
||||
import net.minecraft.registry.RegistryKeys;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import net.minecraft.sound.BiomeAdditionsSound;
|
||||
@@ -14,13 +15,16 @@ import net.minecraft.sound.MusicSound;
|
||||
import net.minecraft.sound.SoundEvent;
|
||||
import net.minecraft.util.Identifier;
|
||||
import net.minecraft.village.VillagerType;
|
||||
import net.minecraft.world.biome.Biome;
|
||||
import net.minecraft.world.biome.Biome.Precipitation;
|
||||
import net.minecraft.world.biome.Biome.TemperatureModifier;
|
||||
import net.minecraft.world.biome.BiomeEffects.GrassColorModifier;
|
||||
import net.minecraft.world.biome.BiomeParticleConfig;
|
||||
import net.minecraft.world.biome.SpawnSettings;
|
||||
import net.minecraft.world.biome.SpawnSettings.SpawnEntry;
|
||||
import net.minecraft.world.dimension.DimensionType;
|
||||
import net.minecraft.world.gen.WorldPreset;
|
||||
import net.minecraft.world.gen.chunk.ChunkGeneratorSettings;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.List;
|
||||
@@ -58,7 +62,7 @@ public abstract class ModPlatform extends AbstractPlatform {
|
||||
|
||||
public void registerWorldTypes(BiConsumer<Identifier, WorldPreset> registerFunction) {
|
||||
getRawConfigRegistry()
|
||||
.forEach(pack -> PresetUtil.createDefault(pack, getMinecraftRegistry()).apply(registerFunction));
|
||||
.forEach(pack -> PresetUtil.createDefault(pack, this).apply(registerFunction));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -95,7 +99,7 @@ public abstract class ModPlatform extends AbstractPlatform {
|
||||
|
||||
private ProtoPlatformBiome parseBiome(String id, DepthTracker tracker) throws LoadException {
|
||||
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);
|
||||
}
|
||||
|
||||
@@ -106,7 +110,9 @@ public abstract class ModPlatform extends AbstractPlatform {
|
||||
|
||||
protected abstract BaseAddon getPlatformAddon();
|
||||
|
||||
public abstract DynamicRegistryManager getMinecraftRegistry();
|
||||
public abstract Registry<DimensionType> dimensionTypeRegistry();
|
||||
public abstract Registry<Biome> biomeRegistry();
|
||||
public abstract Registry<ChunkGeneratorSettings> chunkGeneratorSettingsRegistry();
|
||||
|
||||
@Override
|
||||
public @NotNull WorldHandle getWorldHandle() {
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package com.dfsek.terra.mod.util;
|
||||
|
||||
import com.dfsek.terra.mod.ModPlatform;
|
||||
|
||||
import net.minecraft.registry.DynamicRegistryManager;
|
||||
import net.minecraft.registry.Registry;
|
||||
import net.minecraft.registry.RegistryKeys;
|
||||
@@ -33,19 +35,17 @@ public class PresetUtil {
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(PresetUtil.class);
|
||||
private static final List<Identifier> PRESETS = new ArrayList<>();
|
||||
|
||||
public static Pair<Identifier, WorldPreset> createDefault(ConfigPack pack, DynamicRegistryManager registryManager) {
|
||||
Registry<DimensionType> dimensionTypeRegistry = registryManager.get(RegistryKeys.DIMENSION_TYPE);
|
||||
Registry<ChunkGeneratorSettings> chunkGeneratorSettingsRegistry = registryManager.get(RegistryKeys.CHUNK_GENERATOR_SETTINGS);
|
||||
Registry<Biome> biomeRegistry = registryManager.get(RegistryKeys.BIOME);
|
||||
|
||||
public static Pair<Identifier, WorldPreset> createDefault(ConfigPack pack, ModPlatform platform) {
|
||||
Registry<DimensionType> dimensionTypeRegistry = platform.dimensionTypeRegistry();
|
||||
Registry<ChunkGeneratorSettings> chunkGeneratorSettingsRegistry = platform.chunkGeneratorSettingsRegistry();
|
||||
|
||||
RegistryEntry<DimensionType> theNetherDimensionType = dimensionTypeRegistry.getEntry(DimensionTypes.THE_NETHER).orElseThrow();
|
||||
RegistryEntry<ChunkGeneratorSettings>
|
||||
netherChunkGeneratorSettings = chunkGeneratorSettingsRegistry.getEntry(ChunkGeneratorSettings.NETHER).orElseThrow();
|
||||
DimensionOptions netherDimensionOptions = new DimensionOptions(theNetherDimensionType,
|
||||
new NoiseChunkGenerator(
|
||||
MultiNoiseBiomeSource.Preset.NETHER.getBiomeSource(
|
||||
registryManager.createRegistryLookup()
|
||||
.getOrThrow(RegistryKeys.BIOME)),
|
||||
platform.biomeRegistry().getReadOnlyWrapper()),
|
||||
netherChunkGeneratorSettings));
|
||||
RegistryEntry<DimensionType> theEndDimensionType = dimensionTypeRegistry.getEntry(DimensionTypes.THE_END).orElseThrow();
|
||||
RegistryEntry<ChunkGeneratorSettings> endChunkGeneratorSettings = chunkGeneratorSettingsRegistry.getEntry(
|
||||
@@ -53,8 +53,7 @@ public class PresetUtil {
|
||||
DimensionOptions endDimensionOptions = new DimensionOptions(theEndDimensionType,
|
||||
new NoiseChunkGenerator(
|
||||
TheEndBiomeSource.createVanilla(
|
||||
registryManager.createRegistryLookup()
|
||||
.getOrThrow(RegistryKeys.BIOME)),
|
||||
platform.biomeRegistry().getReadOnlyWrapper()),
|
||||
endChunkGeneratorSettings));
|
||||
|
||||
RegistryEntry<DimensionType> overworldDimensionType = dimensionTypeRegistry.getEntry(DimensionTypes.OVERWORLD).orElseThrow();
|
||||
|
||||
Reference in New Issue
Block a user