diff --git a/common/api/src/main/java/com/dfsek/terra/api/world/biome/generation/BiomeProvider.java b/common/api/src/main/java/com/dfsek/terra/api/world/biome/generation/BiomeProvider.java index 49726c835..43b70f4a3 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/world/biome/generation/BiomeProvider.java +++ b/common/api/src/main/java/com/dfsek/terra/api/world/biome/generation/BiomeProvider.java @@ -99,4 +99,8 @@ public interface BiomeProvider { default CachingBiomeProvider caching(WorldProperties worldProperties) { return caching(worldProperties.getMinHeight(), worldProperties.getMaxHeight()); } + + default ChunkLocalCachingBiomeProvider caching(WorldProperties worldProperties, int chunkX, int chunkZ) { + return new ChunkLocalCachingBiomeProvider(this, worldProperties, chunkX, chunkZ); + } } diff --git a/common/api/src/main/java/com/dfsek/terra/api/world/biome/generation/ChunkLocalCachingBiomeProvider.java b/common/api/src/main/java/com/dfsek/terra/api/world/biome/generation/ChunkLocalCachingBiomeProvider.java index deb74d97b..075b0b446 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/world/biome/generation/ChunkLocalCachingBiomeProvider.java +++ b/common/api/src/main/java/com/dfsek/terra/api/world/biome/generation/ChunkLocalCachingBiomeProvider.java @@ -19,7 +19,7 @@ import java.util.Optional; */ public class ChunkLocalCachingBiomeProvider extends CachingBiomeProvider { private final Biome[][][] cache; - private final Column[][] columnCache = new Column<>[16][16]; + private final Column[][] columnCache = new Column[16][16]; private final int chunkX; private final int chunkZ; diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/FabricChunkGeneratorWrapper.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/FabricChunkGeneratorWrapper.java index 391e31b4e..92bdf3fe7 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/FabricChunkGeneratorWrapper.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/FabricChunkGeneratorWrapper.java @@ -92,9 +92,10 @@ public class FabricChunkGeneratorWrapper extends net.minecraft.world.gen.chunk.C public CompletableFuture populateBiomes(Registry biomeRegistry, Executor executor, NoiseConfig noiseConfig, Blender blender, StructureAccessor structureAccessor, Chunk chunk) { if(chunk instanceof net.minecraft.world.chunk.ProtoChunk) { + ChunkPos pos = chunk.getPos(); ((BiomeProviderHolder) chunk) .setBiomeProvider(pack.getBiomeProvider() - .caching((ProtoWorld) ((StructureAccessorAccessor) structureAccessor).getWorld())); + .caching((ProtoWorld) ((StructureAccessorAccessor) structureAccessor).getWorld(), pos.x, pos.z)); } return super.populateBiomes(biomeRegistry, executor, noiseConfig, blender, structureAccessor, chunk); }