Create/Load of Worlds with WorldPreset appears to work
This commit is contained in:
parent
409534e6f1
commit
416ff1644e
27 changed files with 187 additions and 195 deletions
|
@ -81,7 +81,7 @@ public class BCLib implements ModInitializer {
|
|||
VersionChecker.registerMod(MOD_ID);
|
||||
|
||||
|
||||
if (false && isDevEnvironment()) {
|
||||
if (true && isDevEnvironment()) {
|
||||
BCLBiome theYellow = BCLBiomeBuilder
|
||||
.start(makeID("the_yellow"))
|
||||
.precipitation(Biome.Precipitation.NONE)
|
||||
|
|
|
@ -30,7 +30,6 @@ import net.minecraft.world.level.dimension.LevelStem;
|
|||
import net.minecraft.world.level.levelgen.NoiseBasedChunkGenerator;
|
||||
import net.minecraft.world.level.levelgen.NoiseGeneratorSettings;
|
||||
import net.minecraft.world.level.levelgen.RandomState;
|
||||
import net.minecraft.world.level.levelgen.WorldDimensions;
|
||||
import net.minecraft.world.level.levelgen.structure.StructureSet;
|
||||
import net.minecraft.world.level.levelgen.synth.NormalNoise;
|
||||
|
||||
|
@ -157,12 +156,12 @@ public class BCLChunkGenerator extends NoiseBasedChunkGenerator implements Resto
|
|||
}
|
||||
|
||||
@Override
|
||||
public WorldDimensions enforceGeneratorInWorldGenSettings(
|
||||
public Registry<LevelStem> enforceGeneratorInWorldGenSettings(
|
||||
RegistryAccess access,
|
||||
ResourceKey<LevelStem> dimensionKey,
|
||||
ResourceKey<DimensionType> dimensionTypeKey,
|
||||
ChunkGenerator loadedChunkGenerator,
|
||||
WorldDimensions worldDims
|
||||
Registry<LevelStem> dimensionRegistry
|
||||
) {
|
||||
BCLib.LOGGER.info("Enforcing Correct Generator for " + dimensionKey.location().toString() + ".");
|
||||
|
||||
|
@ -195,7 +194,7 @@ public class BCLChunkGenerator extends NoiseBasedChunkGenerator implements Resto
|
|||
dimensionKey,
|
||||
dimensionTypeKey,
|
||||
access,
|
||||
worldDims,
|
||||
dimensionRegistry,
|
||||
referenceGenerator
|
||||
);
|
||||
|
||||
|
|
|
@ -15,6 +15,7 @@ import org.betterx.worlds.together.world.event.WorldEvents;
|
|||
import org.betterx.worlds.together.worldPreset.TogetherWorldPreset;
|
||||
|
||||
import net.minecraft.core.Holder;
|
||||
import net.minecraft.core.Registry;
|
||||
import net.minecraft.core.RegistryAccess;
|
||||
import net.minecraft.resources.ResourceKey;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
|
@ -22,7 +23,6 @@ import net.minecraft.tags.TagLoader;
|
|||
import net.minecraft.world.level.chunk.ChunkGenerator;
|
||||
import net.minecraft.world.level.dimension.LevelStem;
|
||||
import net.minecraft.world.level.levelgen.WorldDimensions;
|
||||
import net.minecraft.world.level.levelgen.WorldGenSettings;
|
||||
import net.minecraft.world.level.levelgen.presets.WorldPreset;
|
||||
import net.minecraft.world.level.storage.LevelStorageSource;
|
||||
|
||||
|
@ -149,14 +149,14 @@ public class LevelGenEvents {
|
|||
}
|
||||
|
||||
private static void finalizeStem(
|
||||
WorldGenSettings settings,
|
||||
Registry<LevelStem> dimensionRegistry,
|
||||
ResourceKey<LevelStem> dimension,
|
||||
LevelStem levelStem
|
||||
) {
|
||||
InternalBiomeAPI.applyModifications(levelStem.generator().getBiomeSource(), dimension);
|
||||
}
|
||||
|
||||
private static void finalizedWorldLoad(WorldGenSettings worldGenSettings) {
|
||||
private static void finalizedWorldLoad(Registry<LevelStem> dimensionRegistry) {
|
||||
PoiManager.updateStates();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -22,7 +22,6 @@ import net.minecraft.resources.ResourceKey;
|
|||
import net.minecraft.world.level.chunk.ChunkGenerator;
|
||||
import net.minecraft.world.level.dimension.DimensionType;
|
||||
import net.minecraft.world.level.dimension.LevelStem;
|
||||
import net.minecraft.world.level.levelgen.WorldDimensions;
|
||||
import net.minecraft.world.level.levelgen.presets.WorldPreset;
|
||||
import net.minecraft.world.level.levelgen.presets.WorldPresets;
|
||||
|
||||
|
@ -64,11 +63,11 @@ public class LevelGenUtil {
|
|||
}
|
||||
|
||||
|
||||
public static WorldDimensions replaceGenerator(
|
||||
public static Registry<LevelStem> replaceGenerator(
|
||||
ResourceKey<LevelStem> dimensionKey,
|
||||
ResourceKey<DimensionType> dimensionTypeKey,
|
||||
RegistryAccess registryAccess,
|
||||
WorldDimensions worldDimensions,
|
||||
Registry<LevelStem> dimensionRegistry,
|
||||
ChunkGenerator generator
|
||||
) {
|
||||
Registry<DimensionType> dimensionTypeRegistry = registryAccess.registryOrThrow(Registry.DIMENSION_TYPE_REGISTRY);
|
||||
|
@ -76,10 +75,10 @@ public class LevelGenUtil {
|
|||
dimensionKey,
|
||||
dimensionTypeKey,
|
||||
dimensionTypeRegistry,
|
||||
worldDimensions.dimensions(),
|
||||
dimensionRegistry,
|
||||
generator
|
||||
);
|
||||
return new WorldDimensions(newDimensions);
|
||||
return newDimensions;
|
||||
}
|
||||
|
||||
public static Registry<LevelStem> withDimension(
|
||||
|
|
|
@ -44,7 +44,7 @@ public class BCLBiome extends BCLBiomeSettings implements BiomeData {
|
|||
instance,
|
||||
BCLBiome::new
|
||||
));
|
||||
public static final KeyDispatchDataCodec<BCLBiome> KEY_CODEC = KeyDispatchDataCodec.of(CODEC);
|
||||
public static final KeyDispatchDataCodec<? extends BCLBiome> KEY_CODEC = KeyDispatchDataCodec.of(CODEC);
|
||||
|
||||
public KeyDispatchDataCodec<? extends BCLBiome> codec() {
|
||||
return KEY_CODEC;
|
||||
|
@ -425,7 +425,7 @@ public class BCLBiome extends BCLBiomeSettings implements BiomeData {
|
|||
}
|
||||
|
||||
public ResourceKey<BCLBiome> getBCLBiomeKey() {
|
||||
return ResourceKey.create(BCLBiomeRegistry.BCL_BIOMES_REGISTRY, biomeID);
|
||||
return (ResourceKey<BCLBiome>) (Object) ResourceKey.create(BCLBiomeRegistry.BCL_BIOMES_REGISTRY, biomeID);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -16,7 +16,6 @@ import net.minecraft.resources.ResourceLocation;
|
|||
import net.minecraft.util.KeyDispatchDataCodec;
|
||||
import net.minecraft.world.level.biome.Biomes;
|
||||
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Stream;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
|
||||
|
@ -81,6 +80,7 @@ public class BCLBiomeRegistry {
|
|||
return ResourceKey.createRegistryKey(location);
|
||||
}
|
||||
|
||||
|
||||
private static Codec<? extends BCLBiome> bootstrapCodecs(Registry<Codec<? extends BCLBiome>> registry) {
|
||||
return Registry.register(registry, BCLib.makeID("biome"), BCLBiome.KEY_CODEC.codec());
|
||||
}
|
||||
|
@ -153,8 +153,8 @@ public class BCLBiomeRegistry {
|
|||
|
||||
private static Registry<BCLBiome> getBclBiomesRegistry(RegistryAccess access) {
|
||||
if (access != null) {
|
||||
return ((Optional<Registry<BCLBiome>>) access
|
||||
.registry(BCLBiomeRegistry.BCL_BIOMES_REGISTRY))
|
||||
return access
|
||||
.registry(BCLBiomeRegistry.BCL_BIOMES_REGISTRY)
|
||||
.orElse(BUILTIN_BCL_BIOMES);
|
||||
} else {
|
||||
return BUILTIN_BCL_BIOMES;
|
||||
|
|
|
@ -26,6 +26,7 @@ import net.minecraft.world.level.chunk.ChunkGenerator;
|
|||
import net.minecraft.world.level.dimension.BuiltinDimensionTypes;
|
||||
import net.minecraft.world.level.dimension.DimensionType;
|
||||
import net.minecraft.world.level.dimension.LevelStem;
|
||||
import net.minecraft.world.level.levelgen.WorldDimensions;
|
||||
import net.minecraft.world.level.levelgen.presets.WorldPresets;
|
||||
|
||||
import net.fabricmc.api.EnvType;
|
||||
|
@ -269,13 +270,13 @@ public class WorldSetupScreen extends LayoutScreen {
|
|||
ChunkGenerator chunkGenerator
|
||||
) {
|
||||
createWorldScreen.worldGenSettingsComponent.updateSettings(
|
||||
(registryAccess, worldDimensions) -> LevelGenUtil.replaceGenerator(
|
||||
(registryAccess, worldDimensions) -> new WorldDimensions(LevelGenUtil.replaceGenerator(
|
||||
dimensionKey,
|
||||
dimensionTypeKey,
|
||||
registryAccess,
|
||||
worldDimensions,
|
||||
worldDimensions.dimensions(),
|
||||
chunkGenerator
|
||||
)
|
||||
))
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ import java.util.ArrayList;
|
|||
import java.util.List;
|
||||
|
||||
@Mixin(RegistryDataLoader.class)
|
||||
public interface RegistryDataLoaderMixin {
|
||||
public class RegistryDataLoaderMixin {
|
||||
@Accessor("WORLDGEN_REGISTRIES")
|
||||
@Mutable
|
||||
static void wt_set_WORLDGEN_REGISTRIES(List<RegistryDataLoader.RegistryData<?>> list) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue