SOrt available features before BiomeSOurce is initialized
This commit is contained in:
parent
b6bc8acf6b
commit
32280dc499
3 changed files with 42 additions and 23 deletions
27
src/main/java/ru/bclib/world/generator/BCLBiomeSource.java
Normal file
27
src/main/java/ru/bclib/world/generator/BCLBiomeSource.java
Normal file
|
@ -0,0 +1,27 @@
|
|||
package ru.bclib.world.generator;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import net.minecraft.core.Registry;
|
||||
import net.minecraft.world.level.biome.Biome;
|
||||
import net.minecraft.world.level.biome.BiomeSource;
|
||||
import ru.bclib.api.biomes.BiomeAPI;
|
||||
|
||||
public abstract class BCLBiomeSource extends BiomeSource {
|
||||
protected final Registry<Biome> biomeRegistry;
|
||||
protected final long seed;
|
||||
|
||||
private static List<Biome> preInit(Registry<Biome> biomeRegistry, List<Biome> biomes){
|
||||
biomes.forEach(biome -> BiomeAPI.sortBiomeFeatures(biome));
|
||||
return biomes;
|
||||
}
|
||||
|
||||
protected BCLBiomeSource(Registry<Biome> biomeRegistry, long seed, List<Biome> list) {
|
||||
super(preInit(biomeRegistry, list));
|
||||
|
||||
this.seed = seed;
|
||||
this.biomeRegistry = biomeRegistry;
|
||||
|
||||
BiomeAPI.initRegistry(biomeRegistry);
|
||||
}
|
||||
}
|
|
@ -1,5 +1,9 @@
|
|||
package ru.bclib.world.generator;
|
||||
|
||||
import java.awt.Point;
|
||||
import java.util.List;
|
||||
import java.util.function.Function;
|
||||
|
||||
import com.mojang.serialization.Codec;
|
||||
import com.mojang.serialization.codecs.RecordCodecBuilder;
|
||||
import net.minecraft.core.Registry;
|
||||
|
@ -24,11 +28,7 @@ import ru.bclib.world.biomes.BCLBiome;
|
|||
import ru.bclib.world.generator.map.hex.HexBiomeMap;
|
||||
import ru.bclib.world.generator.map.square.SquareBiomeMap;
|
||||
|
||||
import java.awt.Point;
|
||||
import java.util.List;
|
||||
import java.util.function.Function;
|
||||
|
||||
public class BCLibEndBiomeSource extends BiomeSource {
|
||||
public class BCLibEndBiomeSource extends BCLBiomeSource {
|
||||
public static final Codec<BCLibEndBiomeSource> CODEC = RecordCodecBuilder.create((instance) -> {
|
||||
return instance.group(RegistryLookupCodec.create(Registry.BIOME_REGISTRY).forGetter((theEndBiomeSource) -> {
|
||||
return theEndBiomeSource.biomeRegistry;
|
||||
|
@ -38,19 +38,17 @@ public class BCLibEndBiomeSource extends BiomeSource {
|
|||
});
|
||||
private static final OpenSimplexNoise SMALL_NOISE = new OpenSimplexNoise(8324);
|
||||
private Function<Point, Boolean> endLandFunction;
|
||||
private final Registry<Biome> biomeRegistry;
|
||||
|
||||
private final SimplexNoise noise;
|
||||
private final Biome centerBiome;
|
||||
private final Biome barrens;
|
||||
private BiomeMap mapLand;
|
||||
private BiomeMap mapVoid;
|
||||
private final long seed;
|
||||
private final Point pos;
|
||||
|
||||
public BCLibEndBiomeSource(Registry<Biome> biomeRegistry, long seed) {
|
||||
super(getBiomes(biomeRegistry));
|
||||
|
||||
BiomeAPI.initRegistry(biomeRegistry);
|
||||
super(biomeRegistry, seed, getBiomes(biomeRegistry));
|
||||
|
||||
BiomeAPI.END_LAND_BIOME_PICKER.clearMutables();
|
||||
BiomeAPI.END_VOID_BIOME_PICKER.clearMutables();
|
||||
|
||||
|
@ -103,9 +101,7 @@ public class BCLibEndBiomeSource extends BiomeSource {
|
|||
|
||||
this.centerBiome = biomeRegistry.getOrThrow(Biomes.THE_END);
|
||||
this.barrens = biomeRegistry.getOrThrow(Biomes.END_BARRENS);
|
||||
this.biomeRegistry = biomeRegistry;
|
||||
this.seed = seed;
|
||||
|
||||
|
||||
WorldgenRandom chunkRandom = new WorldgenRandom(new LegacyRandomSource(seed));
|
||||
chunkRandom.consumeCount(17292);
|
||||
this.noise = new SimplexNoise(chunkRandom);
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package ru.bclib.world.generator;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.mojang.serialization.Codec;
|
||||
import com.mojang.serialization.codecs.RecordCodecBuilder;
|
||||
import net.minecraft.core.Registry;
|
||||
|
@ -20,9 +22,7 @@ import ru.bclib.world.generator.map.MapStack;
|
|||
import ru.bclib.world.generator.map.hex.HexBiomeMap;
|
||||
import ru.bclib.world.generator.map.square.SquareBiomeMap;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class BCLibNetherBiomeSource extends BiomeSource {
|
||||
public class BCLibNetherBiomeSource extends BCLBiomeSource {
|
||||
public static final Codec<BCLibNetherBiomeSource> CODEC = RecordCodecBuilder.create((instance) -> {
|
||||
return instance.group(RegistryLookupCodec.create(Registry.BIOME_REGISTRY).forGetter((theEndBiomeSource) -> {
|
||||
return theEndBiomeSource.biomeRegistry;
|
||||
|
@ -30,9 +30,8 @@ public class BCLibNetherBiomeSource extends BiomeSource {
|
|||
return theEndBiomeSource.seed;
|
||||
})).apply(instance, instance.stable(BCLibNetherBiomeSource::new));
|
||||
});
|
||||
private final Registry<Biome> biomeRegistry;
|
||||
private BiomeMap biomeMap;
|
||||
private final long seed;
|
||||
|
||||
private static boolean forceLegacyGenerator = false;
|
||||
private static int lastWorldHeight;
|
||||
private static int worldHeight;
|
||||
|
@ -57,9 +56,9 @@ public class BCLibNetherBiomeSource extends BiomeSource {
|
|||
}
|
||||
|
||||
public BCLibNetherBiomeSource(Registry<Biome> biomeRegistry, long seed) {
|
||||
super(getBiomes(biomeRegistry));
|
||||
super(biomeRegistry, seed, getBiomes(biomeRegistry));
|
||||
|
||||
BiomeAPI.initRegistry(biomeRegistry);
|
||||
|
||||
BiomeAPI.NETHER_BIOME_PICKER.clearMutables();
|
||||
|
||||
this.possibleBiomes().forEach(biome -> {
|
||||
|
@ -86,9 +85,6 @@ public class BCLibNetherBiomeSource extends BiomeSource {
|
|||
BiomeAPI.NETHER_BIOME_PICKER.rebuild();
|
||||
|
||||
initMap();
|
||||
|
||||
this.biomeRegistry = biomeRegistry;
|
||||
this.seed = seed;
|
||||
}
|
||||
|
||||
private static List<Biome> getBiomes(Registry<Biome> biomeRegistry) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue