[Changes] Simplified and streamlined some aspects of BCLBiomeRegistry
`
This commit is contained in:
parent
82c9b62fd3
commit
ce9288d4e3
16 changed files with 63 additions and 138 deletions
|
@ -53,7 +53,7 @@ public class BCLib implements ModInitializer {
|
||||||
PresetsRegistry.register();
|
PresetsRegistry.register();
|
||||||
LevelGenEvents.register();
|
LevelGenEvents.register();
|
||||||
BlockPredicates.ensureStaticInitialization();
|
BlockPredicates.ensureStaticInitialization();
|
||||||
BCLBiomeRegistry.ensureStaticallyLoaded();
|
BCLBiomeRegistry.register();
|
||||||
BaseRegistry.register();
|
BaseRegistry.register();
|
||||||
GeneratorOptions.init();
|
GeneratorOptions.init();
|
||||||
BaseBlockEntities.register();
|
BaseBlockEntities.register();
|
||||||
|
|
|
@ -3,7 +3,6 @@ package org.betterx.bclib.api.v2.generator;
|
||||||
import org.betterx.bclib.BCLib;
|
import org.betterx.bclib.BCLib;
|
||||||
import org.betterx.bclib.api.v2.generator.config.BCLEndBiomeSourceConfig;
|
import org.betterx.bclib.api.v2.generator.config.BCLEndBiomeSourceConfig;
|
||||||
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiome;
|
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiome;
|
||||||
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeRegistry;
|
|
||||||
import org.betterx.bclib.api.v2.levelgen.biomes.BiomeAPI;
|
import org.betterx.bclib.api.v2.levelgen.biomes.BiomeAPI;
|
||||||
import org.betterx.bclib.config.Configs;
|
import org.betterx.bclib.config.Configs;
|
||||||
import org.betterx.bclib.interfaces.BiomeMap;
|
import org.betterx.bclib.interfaces.BiomeMap;
|
||||||
|
@ -11,10 +10,11 @@ import org.betterx.worlds.together.biomesource.BiomeSourceWithConfig;
|
||||||
|
|
||||||
import com.mojang.serialization.Codec;
|
import com.mojang.serialization.Codec;
|
||||||
import com.mojang.serialization.codecs.RecordCodecBuilder;
|
import com.mojang.serialization.codecs.RecordCodecBuilder;
|
||||||
import net.minecraft.core.*;
|
import net.minecraft.core.Holder;
|
||||||
|
import net.minecraft.core.QuartPos;
|
||||||
|
import net.minecraft.core.Registry;
|
||||||
|
import net.minecraft.core.SectionPos;
|
||||||
import net.minecraft.core.registries.BuiltInRegistries;
|
import net.minecraft.core.registries.BuiltInRegistries;
|
||||||
import net.minecraft.core.registries.Registries;
|
|
||||||
import net.minecraft.resources.RegistryOps;
|
|
||||||
import net.minecraft.resources.ResourceKey;
|
import net.minecraft.resources.ResourceKey;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.tags.BiomeTags;
|
import net.minecraft.tags.BiomeTags;
|
||||||
|
@ -34,8 +34,6 @@ public class BCLibEndBiomeSource extends BCLBiomeSource implements BiomeSourceWi
|
||||||
public static Codec<BCLibEndBiomeSource> CODEC
|
public static Codec<BCLibEndBiomeSource> CODEC
|
||||||
= RecordCodecBuilder.create((instance) -> instance
|
= RecordCodecBuilder.create((instance) -> instance
|
||||||
.group(
|
.group(
|
||||||
RegistryOps.retrieveGetter(Registries.BIOME),
|
|
||||||
RegistryOps.retrieveGetter(BCLBiomeRegistry.BCL_BIOMES_REGISTRY),
|
|
||||||
Codec
|
Codec
|
||||||
.LONG
|
.LONG
|
||||||
.fieldOf("seed")
|
.fieldOf("seed")
|
||||||
|
@ -67,36 +65,20 @@ public class BCLibEndBiomeSource extends BCLBiomeSource implements BiomeSourceWi
|
||||||
private BCLEndBiomeSourceConfig config;
|
private BCLEndBiomeSourceConfig config;
|
||||||
|
|
||||||
private BCLibEndBiomeSource(
|
private BCLibEndBiomeSource(
|
||||||
HolderGetter<Biome> biomeRegistry,
|
|
||||||
HolderGetter<BCLBiome> bclBiomeRegistry,
|
|
||||||
long seed,
|
long seed,
|
||||||
BCLEndBiomeSourceConfig config
|
BCLEndBiomeSourceConfig config
|
||||||
) {
|
) {
|
||||||
this(biomeRegistry, bclBiomeRegistry, seed, config, true);
|
this(seed, config, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public BCLibEndBiomeSource(
|
public BCLibEndBiomeSource(
|
||||||
HolderGetter<Biome> biomeRegistry,
|
|
||||||
HolderGetter<BCLBiome> bclBiomeRegistry,
|
|
||||||
BCLEndBiomeSourceConfig config
|
BCLEndBiomeSourceConfig config
|
||||||
) {
|
) {
|
||||||
this(biomeRegistry, bclBiomeRegistry, 0, config, false);
|
this(0, config, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private BCLibEndBiomeSource(
|
|
||||||
HolderGetter<Biome> biomeRegistry,
|
|
||||||
HolderGetter<BCLBiome> bclBiomeRegistry,
|
|
||||||
long seed,
|
|
||||||
BCLEndBiomeSourceConfig config,
|
|
||||||
boolean initMaps
|
|
||||||
) {
|
|
||||||
this(biomeRegistry, bclBiomeRegistry, null, seed, config, initMaps);
|
|
||||||
}
|
|
||||||
|
|
||||||
private BCLibEndBiomeSource(
|
private BCLibEndBiomeSource(
|
||||||
HolderGetter<Biome> biomeRegistry,
|
|
||||||
HolderGetter<BCLBiome> bclBiomeRegistry,
|
|
||||||
List<Holder<Biome>> list,
|
|
||||||
long seed,
|
long seed,
|
||||||
BCLEndBiomeSourceConfig config,
|
BCLEndBiomeSourceConfig config,
|
||||||
boolean initMaps
|
boolean initMaps
|
||||||
|
|
|
@ -49,7 +49,7 @@ public class LevelGenUtil {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static LevelStem getBCLEndLevelStem(WorldGenUtil.Context context, BCLEndBiomeSourceConfig config) {
|
public static LevelStem getBCLEndLevelStem(WorldGenUtil.Context context, BCLEndBiomeSourceConfig config) {
|
||||||
BCLibEndBiomeSource endSource = new BCLibEndBiomeSource(context.biomes, context.bclBiomes, config);
|
BCLibEndBiomeSource endSource = new BCLibEndBiomeSource(config);
|
||||||
return new LevelStem(
|
return new LevelStem(
|
||||||
context.dimension,
|
context.dimension,
|
||||||
new BCLChunkGenerator(
|
new BCLChunkGenerator(
|
||||||
|
|
|
@ -320,7 +320,8 @@ public class BCLBiome implements BiomeData {
|
||||||
subbiomes.add(this, 1.0f);
|
subbiomes.add(this, 1.0f);
|
||||||
if (acc == null) return subbiomes;
|
if (acc == null) return subbiomes;
|
||||||
|
|
||||||
Registry<BCLBiome> reg = acc.registryOrThrow(BCLBiomeRegistry.BCL_BIOMES_REGISTRY);
|
Registry<BCLBiome> reg = acc.registry(BCLBiomeRegistry.BCL_BIOMES_REGISTRY).orElse(null);
|
||||||
|
if (reg == null) reg = BCLBiomeRegistry.BUILTIN_BCL_BIOMES;
|
||||||
|
|
||||||
for (Map.Entry<ResourceKey<BCLBiome>, BCLBiome> entry : reg.entrySet()) {
|
for (Map.Entry<ResourceKey<BCLBiome>, BCLBiome> entry : reg.entrySet()) {
|
||||||
BCLBiome b = entry.getValue();
|
BCLBiome b = entry.getValue();
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
package org.betterx.bclib.api.v2.levelgen.biomes;
|
package org.betterx.bclib.api.v2.levelgen.biomes;
|
||||||
|
|
||||||
import org.betterx.bclib.BCLib;
|
import org.betterx.bclib.BCLib;
|
||||||
import org.betterx.datagen.bclib.worldgen.VanillaBCLBiomesDataProvider;
|
|
||||||
import org.betterx.worlds.together.WorldsTogether;
|
import org.betterx.worlds.together.WorldsTogether;
|
||||||
import org.betterx.worlds.together.world.event.WorldBootstrap;
|
import org.betterx.worlds.together.world.event.WorldBootstrap;
|
||||||
|
|
||||||
|
@ -10,14 +9,18 @@ import com.mojang.serialization.Lifecycle;
|
||||||
import net.minecraft.core.MappedRegistry;
|
import net.minecraft.core.MappedRegistry;
|
||||||
import net.minecraft.core.Registry;
|
import net.minecraft.core.Registry;
|
||||||
import net.minecraft.core.RegistryAccess;
|
import net.minecraft.core.RegistryAccess;
|
||||||
import net.minecraft.core.registries.BuiltInRegistries;
|
import net.minecraft.data.worldgen.BootstapContext;
|
||||||
import net.minecraft.resources.ResourceKey;
|
import net.minecraft.resources.ResourceKey;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.util.KeyDispatchDataCodec;
|
import net.minecraft.util.KeyDispatchDataCodec;
|
||||||
import net.minecraft.world.level.biome.Biome;
|
import net.minecraft.world.level.biome.Biome;
|
||||||
import net.minecraft.world.level.biome.Biomes;
|
import net.minecraft.world.level.biome.Biomes;
|
||||||
|
|
||||||
|
import net.fabricmc.fabric.api.event.registry.FabricRegistryBuilder;
|
||||||
|
import net.fabricmc.fabric.api.event.registry.RegistryAttribute;
|
||||||
|
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
import org.jetbrains.annotations.ApiStatus;
|
import org.jetbrains.annotations.ApiStatus;
|
||||||
|
@ -30,11 +33,11 @@ public class BCLBiomeRegistry {
|
||||||
public static final ResourceKey<Registry<Codec<? extends BCLBiome>>> BCL_BIOME_CODEC_REGISTRY =
|
public static final ResourceKey<Registry<Codec<? extends BCLBiome>>> BCL_BIOME_CODEC_REGISTRY =
|
||||||
createRegistryKey(WorldsTogether.makeID("worldgen/betterx/biome_codec"));
|
createRegistryKey(WorldsTogether.makeID("worldgen/betterx/biome_codec"));
|
||||||
|
|
||||||
public static Registry<Codec<? extends BCLBiome>> BIOME_CODECS = BuiltInRegistries.registerSimple(
|
public static Registry<Codec<? extends BCLBiome>> BIOME_CODECS = FabricRegistryBuilder
|
||||||
BCL_BIOME_CODEC_REGISTRY,
|
.from(new MappedRegistry<>(BCL_BIOME_CODEC_REGISTRY, Lifecycle.stable()))
|
||||||
BCLBiomeRegistry::bootstrapCodecs
|
.attribute(RegistryAttribute.MODDED)
|
||||||
);
|
.buildAndRegister();
|
||||||
public static Registry<BCLBiome> BUILTIN_BCL_BIOMES = new MappedRegistry<>(
|
public static MappedRegistry<BCLBiome> BUILTIN_BCL_BIOMES = new MappedRegistry<>(
|
||||||
BCL_BIOMES_REGISTRY,
|
BCL_BIOMES_REGISTRY,
|
||||||
Lifecycle.stable()
|
Lifecycle.stable()
|
||||||
);
|
);
|
||||||
|
@ -185,17 +188,16 @@ public class BCLBiomeRegistry {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void ensureStaticallyLoaded() {
|
@ApiStatus.Internal
|
||||||
|
public static void register() {
|
||||||
|
bootstrapCodecs(BIOME_CODECS);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void prepareForDatagen() {
|
@ApiStatus.Internal
|
||||||
if (didCreate) return;
|
public static void bootstrap(BootstapContext<BCLBiome> ctx) {
|
||||||
didCreate = true;
|
//copy from builtin
|
||||||
|
for (Map.Entry<ResourceKey<BCLBiome>, BCLBiome> e : BUILTIN_BCL_BIOMES.entrySet()) {
|
||||||
BUILTIN_BCL_BIOMES = BuiltInRegistries.registerSimple(
|
ctx.register(e.getKey(), e.getValue());
|
||||||
BCL_BIOMES_REGISTRY,
|
}
|
||||||
VanillaBCLBiomesDataProvider::bootstrap
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package org.betterx.bclib.api.v3.datagen;
|
package org.betterx.bclib.api.v3.datagen;
|
||||||
|
|
||||||
|
import org.betterx.bclib.BCLib;
|
||||||
|
|
||||||
import com.mojang.serialization.Codec;
|
import com.mojang.serialization.Codec;
|
||||||
import net.minecraft.core.Holder;
|
import net.minecraft.core.Holder;
|
||||||
import net.minecraft.core.HolderLookup;
|
import net.minecraft.core.HolderLookup;
|
||||||
|
@ -38,9 +40,7 @@ public abstract class RegistrySupplier {
|
||||||
|
|
||||||
public void bootstrapRegistries(RegistrySetBuilder registryBuilder) {
|
public void bootstrapRegistries(RegistrySetBuilder registryBuilder) {
|
||||||
for (RegistrySupplier.RegistryInfo<?> nfo : allRegistries) {
|
for (RegistrySupplier.RegistryInfo<?> nfo : allRegistries) {
|
||||||
if (nfo.registryBootstrap != null) {
|
nfo.add(registryBuilder, BOOTSTRAP_LOCK);
|
||||||
nfo.add(registryBuilder, BOOTSTRAP_LOCK);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
BOOTSTRAP_LOCK.release();
|
BOOTSTRAP_LOCK.release();
|
||||||
}
|
}
|
||||||
|
@ -213,8 +213,11 @@ public abstract class RegistrySupplier {
|
||||||
} catch (InterruptedException e) {
|
} catch (InterruptedException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
BCLib.LOGGER.info("Adding:" + key());
|
||||||
registryBuilder.add(key(), (BootstapContext<T> ctx) -> {
|
registryBuilder.add(key(), (BootstapContext<T> ctx) -> {
|
||||||
registryBootstrap.run(ctx);
|
if (registryBootstrap != null) {
|
||||||
|
registryBootstrap.run(ctx);
|
||||||
|
}
|
||||||
LOCK_BOOSTRAP.release();
|
LOCK_BOOSTRAP.release();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,43 +0,0 @@
|
||||||
package org.betterx.bclib.mixin.common;
|
|
||||||
|
|
||||||
import org.betterx.bclib.BCLib;
|
|
||||||
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeRegistry;
|
|
||||||
|
|
||||||
import com.mojang.serialization.Lifecycle;
|
|
||||||
import net.minecraft.core.Registry;
|
|
||||||
import net.minecraft.core.WritableRegistry;
|
|
||||||
import net.minecraft.core.registries.BuiltInRegistries;
|
|
||||||
import net.minecraft.resources.ResourceKey;
|
|
||||||
|
|
||||||
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.callback.CallbackInfo;
|
|
||||||
|
|
||||||
@Mixin(BuiltInRegistries.class)
|
|
||||||
public abstract class BuiltinRegistriesMixin {
|
|
||||||
@Shadow
|
|
||||||
private static <T, R extends WritableRegistry<T>> R internalRegister(
|
|
||||||
ResourceKey<? extends Registry<T>> resourceKey,
|
|
||||||
R writableRegistry,
|
|
||||||
BuiltInRegistries.RegistryBootstrap<T> registryBootstrap,
|
|
||||||
Lifecycle lifecycle
|
|
||||||
) {
|
|
||||||
throw new RuntimeException("Shadowed");
|
|
||||||
}
|
|
||||||
|
|
||||||
//this needs to be added BEFORE the WORLD_PRESET-Registry. Otherwise decoding will fail!
|
|
||||||
@Inject(method = "<clinit>", at = @At(value = "INVOKE", ordinal = 0, target = "Lnet/minecraft/core/registries/BuiltInRegistries;registerSimple(Lnet/minecraft/resources/ResourceKey;Lnet/minecraft/core/registries/BuiltInRegistries$RegistryBootstrap;)Lnet/minecraft/core/Registry;"))
|
|
||||||
private static void bcl_registerBuiltin(CallbackInfo ci) {
|
|
||||||
BCLBiomeRegistry.ensureStaticallyLoaded();
|
|
||||||
if (BCLib.isDatagen()) {
|
|
||||||
// BCLBiomeRegistry.BUILTIN_BCL_BIOMES = internalRegister(
|
|
||||||
// BCLBiomeRegistry.BCL_BIOMES_REGISTRY,
|
|
||||||
// BCLBiomeRegistry.BUILTIN_BCL_BIOMES,
|
|
||||||
// BCLBiomeRegistry::bootstrap,
|
|
||||||
// Lifecycle.stable()
|
|
||||||
// );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -25,6 +25,7 @@ public class RegistryDataLoaderMixin {
|
||||||
|
|
||||||
@Inject(method = "<clinit>", at = @At("TAIL"))
|
@Inject(method = "<clinit>", at = @At("TAIL"))
|
||||||
private static void wt_init(CallbackInfo ci) {
|
private static void wt_init(CallbackInfo ci) {
|
||||||
|
//we need this to ensure, that the BCL-Biome Registry is loaded at the correct time
|
||||||
List<RegistryDataLoader.RegistryData<?>> enhanced = new ArrayList(RegistryDataLoader.WORLDGEN_REGISTRIES.size() + 1);
|
List<RegistryDataLoader.RegistryData<?>> enhanced = new ArrayList(RegistryDataLoader.WORLDGEN_REGISTRIES.size() + 1);
|
||||||
enhanced.addAll(RegistryDataLoader.WORLDGEN_REGISTRIES);
|
enhanced.addAll(RegistryDataLoader.WORLDGEN_REGISTRIES);
|
||||||
enhanced.add(new RegistryDataLoader.RegistryData<>(
|
enhanced.add(new RegistryDataLoader.RegistryData<>(
|
||||||
|
|
|
@ -10,6 +10,7 @@ import org.betterx.datagen.bclib.tests.TestConfiguredFeatures;
|
||||||
import org.betterx.datagen.bclib.tests.TestPlacedFeatures;
|
import org.betterx.datagen.bclib.tests.TestPlacedFeatures;
|
||||||
import org.betterx.datagen.bclib.tests.TestStructure;
|
import org.betterx.datagen.bclib.tests.TestStructure;
|
||||||
import org.betterx.datagen.bclib.worldgen.NoiseTypesDataProvider;
|
import org.betterx.datagen.bclib.worldgen.NoiseTypesDataProvider;
|
||||||
|
import org.betterx.datagen.bclib.worldgen.VanillaBCLBiomesDataProvider;
|
||||||
import org.betterx.worlds.together.WorldsTogether;
|
import org.betterx.worlds.together.WorldsTogether;
|
||||||
import org.betterx.worlds.together.surfaceRules.AssignedSurfaceRule;
|
import org.betterx.worlds.together.surfaceRules.AssignedSurfaceRule;
|
||||||
import org.betterx.worlds.together.surfaceRules.SurfaceRuleRegistry;
|
import org.betterx.worlds.together.surfaceRules.SurfaceRuleRegistry;
|
||||||
|
@ -40,7 +41,11 @@ public class BCLRegistrySupplier extends RegistrySupplier {
|
||||||
protected List<RegistryInfo<?>> initializeRegistryList(@Nullable List<String> modIDs) {
|
protected List<RegistryInfo<?>> initializeRegistryList(@Nullable List<String> modIDs) {
|
||||||
InfoList registries = new InfoList();
|
InfoList registries = new InfoList();
|
||||||
|
|
||||||
registries.addUnfiltered(BCLBiomeRegistry.BCL_BIOMES_REGISTRY, BiomeData.CODEC);
|
registries.addUnfiltered(
|
||||||
|
BCLBiomeRegistry.BCL_BIOMES_REGISTRY,
|
||||||
|
BiomeData.CODEC,
|
||||||
|
VanillaBCLBiomesDataProvider::bootstrap
|
||||||
|
);
|
||||||
registries.addUnfiltered(SurfaceRuleRegistry.SURFACE_RULES_REGISTRY, AssignedSurfaceRule.CODEC);
|
registries.addUnfiltered(SurfaceRuleRegistry.SURFACE_RULES_REGISTRY, AssignedSurfaceRule.CODEC);
|
||||||
|
|
||||||
if (BCLibDatagen.ADD_TESTS) {
|
if (BCLibDatagen.ADD_TESTS) {
|
||||||
|
|
|
@ -6,7 +6,6 @@ import org.betterx.datagen.bclib.preset.WorldPresetDataProvider;
|
||||||
import org.betterx.datagen.bclib.tests.TestBiomes;
|
import org.betterx.datagen.bclib.tests.TestBiomes;
|
||||||
import org.betterx.datagen.bclib.tests.TestWorldgenProvider;
|
import org.betterx.datagen.bclib.tests.TestWorldgenProvider;
|
||||||
import org.betterx.datagen.bclib.worldgen.BCLibRegistriesDataProvider;
|
import org.betterx.datagen.bclib.worldgen.BCLibRegistriesDataProvider;
|
||||||
import org.betterx.datagen.bclib.worldgen.VanillaBCLBiomesDataProvider;
|
|
||||||
|
|
||||||
import net.minecraft.core.RegistrySetBuilder;
|
import net.minecraft.core.RegistrySetBuilder;
|
||||||
|
|
||||||
|
@ -19,8 +18,6 @@ public class BCLibDatagen implements DataGeneratorEntrypoint {
|
||||||
@Override
|
@Override
|
||||||
public void onInitializeDataGenerator(FabricDataGenerator dataGenerator) {
|
public void onInitializeDataGenerator(FabricDataGenerator dataGenerator) {
|
||||||
BCLib.LOGGER.info("Bootstrap onInitializeDataGenerator");
|
BCLib.LOGGER.info("Bootstrap onInitializeDataGenerator");
|
||||||
VanillaBCLBiomesDataProvider.create();
|
|
||||||
|
|
||||||
final FabricDataGenerator.Pack pack = dataGenerator.createPack();
|
final FabricDataGenerator.Pack pack = dataGenerator.createPack();
|
||||||
|
|
||||||
if (ADD_TESTS) {
|
if (ADD_TESTS) {
|
||||||
|
|
|
@ -66,8 +66,6 @@ public class WorldPresetDataProvider extends FabricTagProvider<WorldPreset> {
|
||||||
.getOrThrow(NoiseGeneratorSettings.AMPLIFIED);
|
.getOrThrow(NoiseGeneratorSettings.AMPLIFIED);
|
||||||
|
|
||||||
WorldGenUtil.Context amplifiedNetherContext = new WorldGenUtil.Context(
|
WorldGenUtil.Context amplifiedNetherContext = new WorldGenUtil.Context(
|
||||||
ctx.netherContext.biomes,
|
|
||||||
ctx.netherContext.bclBiomes,
|
|
||||||
ctx.netherContext.dimension,
|
ctx.netherContext.dimension,
|
||||||
ctx.netherContext.structureSets,
|
ctx.netherContext.structureSets,
|
||||||
ctx.noiseSettings.getOrThrow(BCLChunkGenerator.AMPLIFIED_NETHER)
|
ctx.noiseSettings.getOrThrow(BCLChunkGenerator.AMPLIFIED_NETHER)
|
||||||
|
|
|
@ -4,51 +4,35 @@ import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiome;
|
||||||
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeRegistry;
|
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeRegistry;
|
||||||
import org.betterx.bclib.api.v2.levelgen.biomes.BiomeAPI;
|
import org.betterx.bclib.api.v2.levelgen.biomes.BiomeAPI;
|
||||||
|
|
||||||
import net.minecraft.core.Registry;
|
import net.minecraft.data.worldgen.BootstapContext;
|
||||||
|
|
||||||
public class VanillaBCLBiomesDataProvider {
|
public class VanillaBCLBiomesDataProvider {
|
||||||
private static boolean didBootstrap = false;
|
public static void bootstrap(BootstapContext<BCLBiome> ctx) {
|
||||||
|
ctx.register(BiomeAPI.SMALL_END_ISLANDS.getBCLBiomeKey(), BiomeAPI.SMALL_END_ISLANDS);
|
||||||
public static void create() {
|
ctx.register(BiomeAPI.END_BARRENS.getBCLBiomeKey(), BiomeAPI.END_BARRENS);
|
||||||
BCLBiomeRegistry.prepareForDatagen();
|
ctx.register(BiomeAPI.END_HIGHLANDS.getBCLBiomeKey(), BiomeAPI.END_HIGHLANDS);
|
||||||
bootstrap(BCLBiomeRegistry.BUILTIN_BCL_BIOMES);
|
ctx.register(BiomeAPI.END_MIDLANDS.getBCLBiomeKey(), BiomeAPI.END_MIDLANDS);
|
||||||
}
|
ctx.register(BiomeAPI.THE_END.getBCLBiomeKey(), BiomeAPI.THE_END);
|
||||||
|
ctx.register(
|
||||||
public static BCLBiome bootstrap(Registry<BCLBiome> reg) {
|
|
||||||
if (didBootstrap) return BCLBiomeRegistry.EMPTY_BIOME;
|
|
||||||
didBootstrap = true;
|
|
||||||
|
|
||||||
|
|
||||||
Registry.register(reg, BiomeAPI.SMALL_END_ISLANDS.getBCLBiomeKey(), BiomeAPI.SMALL_END_ISLANDS);
|
|
||||||
Registry.register(reg, BiomeAPI.END_BARRENS.getBCLBiomeKey(), BiomeAPI.END_BARRENS);
|
|
||||||
Registry.register(reg, BiomeAPI.END_HIGHLANDS.getBCLBiomeKey(), BiomeAPI.END_HIGHLANDS);
|
|
||||||
Registry.register(reg, BiomeAPI.END_MIDLANDS.getBCLBiomeKey(), BiomeAPI.END_MIDLANDS);
|
|
||||||
Registry.register(reg, BiomeAPI.THE_END.getBCLBiomeKey(), BiomeAPI.THE_END);
|
|
||||||
Registry.register(
|
|
||||||
reg,
|
|
||||||
BiomeAPI.BASALT_DELTAS_BIOME.getBCLBiomeKey(),
|
BiomeAPI.BASALT_DELTAS_BIOME.getBCLBiomeKey(),
|
||||||
BiomeAPI.BASALT_DELTAS_BIOME
|
BiomeAPI.BASALT_DELTAS_BIOME
|
||||||
);
|
);
|
||||||
Registry.register(
|
ctx.register(
|
||||||
reg,
|
|
||||||
BiomeAPI.SOUL_SAND_VALLEY_BIOME.getBCLBiomeKey(),
|
BiomeAPI.SOUL_SAND_VALLEY_BIOME.getBCLBiomeKey(),
|
||||||
BiomeAPI.SOUL_SAND_VALLEY_BIOME
|
BiomeAPI.SOUL_SAND_VALLEY_BIOME
|
||||||
);
|
);
|
||||||
Registry.register(
|
ctx.register(
|
||||||
reg,
|
|
||||||
BiomeAPI.WARPED_FOREST_BIOME.getBCLBiomeKey(),
|
BiomeAPI.WARPED_FOREST_BIOME.getBCLBiomeKey(),
|
||||||
BiomeAPI.WARPED_FOREST_BIOME
|
BiomeAPI.WARPED_FOREST_BIOME
|
||||||
);
|
);
|
||||||
Registry.register(
|
ctx.register(
|
||||||
reg,
|
|
||||||
BiomeAPI.CRIMSON_FOREST_BIOME.getBCLBiomeKey(),
|
BiomeAPI.CRIMSON_FOREST_BIOME.getBCLBiomeKey(),
|
||||||
BiomeAPI.CRIMSON_FOREST_BIOME
|
BiomeAPI.CRIMSON_FOREST_BIOME
|
||||||
);
|
);
|
||||||
Registry.register(
|
ctx.register(
|
||||||
reg,
|
|
||||||
BiomeAPI.NETHER_WASTES_BIOME.getBCLBiomeKey(),
|
BiomeAPI.NETHER_WASTES_BIOME.getBCLBiomeKey(),
|
||||||
BiomeAPI.NETHER_WASTES_BIOME
|
BiomeAPI.NETHER_WASTES_BIOME
|
||||||
);
|
);
|
||||||
return Registry.register(reg, BCLBiomeRegistry.EMPTY_BIOME.getBCLBiomeKey(), BCLBiomeRegistry.EMPTY_BIOME);
|
ctx.register(BCLBiomeRegistry.EMPTY_BIOME.getBCLBiomeKey(), BCLBiomeRegistry.EMPTY_BIOME);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
package org.betterx.worlds.together.levelgen;
|
package org.betterx.worlds.together.levelgen;
|
||||||
|
|
||||||
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiome;
|
|
||||||
import org.betterx.worlds.together.WorldsTogether;
|
import org.betterx.worlds.together.WorldsTogether;
|
||||||
import org.betterx.worlds.together.biomesource.BiomeSourceWithConfig;
|
import org.betterx.worlds.together.biomesource.BiomeSourceWithConfig;
|
||||||
import org.betterx.worlds.together.biomesource.ReloadableBiomeSource;
|
import org.betterx.worlds.together.biomesource.ReloadableBiomeSource;
|
||||||
|
@ -100,19 +99,14 @@ public class WorldGenUtil {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class Context extends StemContext {
|
public static class Context extends StemContext {
|
||||||
public final HolderGetter<Biome> biomes;
|
|
||||||
public final HolderGetter<BCLBiome> bclBiomes;
|
|
||||||
|
|
||||||
public Context(
|
public Context(
|
||||||
HolderGetter<Biome> biomes,
|
|
||||||
HolderGetter<BCLBiome> bclBiomes,
|
|
||||||
Holder<DimensionType> dimension,
|
Holder<DimensionType> dimension,
|
||||||
HolderGetter<StructureSet> structureSets,
|
HolderGetter<StructureSet> structureSets,
|
||||||
Holder<NoiseGeneratorSettings> generatorSettings
|
Holder<NoiseGeneratorSettings> generatorSettings
|
||||||
) {
|
) {
|
||||||
super(dimension, structureSets, generatorSettings);
|
super(dimension, structureSets, generatorSettings);
|
||||||
this.biomes = biomes;
|
|
||||||
this.bclBiomes = bclBiomes;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package org.betterx.worlds.together.mixin.common;
|
package org.betterx.worlds.together.mixin.common;
|
||||||
|
|
||||||
|
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeRegistry;
|
||||||
import org.betterx.worlds.together.surfaceRules.SurfaceRuleRegistry;
|
import org.betterx.worlds.together.surfaceRules.SurfaceRuleRegistry;
|
||||||
|
|
||||||
import net.minecraft.core.RegistrySetBuilder;
|
import net.minecraft.core.RegistrySetBuilder;
|
||||||
|
@ -20,6 +21,11 @@ public class VanillaRegistriesMixin {
|
||||||
|
|
||||||
@Inject(method = "<clinit>", at = @At(value = "TAIL"))
|
@Inject(method = "<clinit>", at = @At(value = "TAIL"))
|
||||||
private static void together_registerSurface(CallbackInfo ci) {
|
private static void together_registerSurface(CallbackInfo ci) {
|
||||||
|
BUILDER.add(
|
||||||
|
BCLBiomeRegistry.BCL_BIOMES_REGISTRY,
|
||||||
|
BCLBiomeRegistry::bootstrap
|
||||||
|
);
|
||||||
|
|
||||||
BUILDER.add(
|
BUILDER.add(
|
||||||
SurfaceRuleRegistry.SURFACE_RULES_REGISTRY,
|
SurfaceRuleRegistry.SURFACE_RULES_REGISTRY,
|
||||||
SurfaceRuleRegistry::bootstrap
|
SurfaceRuleRegistry::bootstrap
|
||||||
|
|
|
@ -115,16 +115,12 @@ public class WorldPresets {
|
||||||
|
|
||||||
HolderGetter<BCLBiome> bclBiomes = bootstapContext.lookup(BCLBiomeRegistry.BCL_BIOMES_REGISTRY);
|
HolderGetter<BCLBiome> bclBiomes = bootstapContext.lookup(BCLBiomeRegistry.BCL_BIOMES_REGISTRY);
|
||||||
this.netherContext = new WorldGenUtil.Context(
|
this.netherContext = new WorldGenUtil.Context(
|
||||||
this.biomes,
|
|
||||||
bclBiomes,
|
|
||||||
this.netherStem.type(),
|
this.netherStem.type(),
|
||||||
this.structureSets,
|
this.structureSets,
|
||||||
netherSettings
|
netherSettings
|
||||||
);
|
);
|
||||||
|
|
||||||
this.endContext = new WorldGenUtil.Context(
|
this.endContext = new WorldGenUtil.Context(
|
||||||
this.biomes,
|
|
||||||
bclBiomes,
|
|
||||||
this.endStem.type(),
|
this.endStem.type(),
|
||||||
this.structureSets,
|
this.structureSets,
|
||||||
endSettings
|
endSettings
|
||||||
|
|
|
@ -10,7 +10,6 @@
|
||||||
"BiomeMixin",
|
"BiomeMixin",
|
||||||
"BiomeSourceMixin",
|
"BiomeSourceMixin",
|
||||||
"BoneMealItemMixin",
|
"BoneMealItemMixin",
|
||||||
"BuiltinRegistriesMixin",
|
|
||||||
"ChunkGeneratorAccessor",
|
"ChunkGeneratorAccessor",
|
||||||
"ChunkGeneratorMixin",
|
"ChunkGeneratorMixin",
|
||||||
"ChunkGeneratorsMixin",
|
"ChunkGeneratorsMixin",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue