use ChunkLocalCachingBiomeProvider

This commit is contained in:
dfsek
2022-06-11 21:50:04 -07:00
parent d58eb699f1
commit 881477c42f
3 changed files with 7 additions and 2 deletions

View File

@@ -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);
}
}

View File

@@ -19,7 +19,7 @@ import java.util.Optional;
*/
public class ChunkLocalCachingBiomeProvider extends CachingBiomeProvider {
private final Biome[][][] cache;
private final Column<Biome>[][] columnCache = new Column<>[16][16];
private final Column<Biome>[][] columnCache = new Column[16][16];
private final int chunkX;
private final int chunkZ;

View File

@@ -92,9 +92,10 @@ public class FabricChunkGeneratorWrapper extends net.minecraft.world.gen.chunk.C
public CompletableFuture<Chunk> populateBiomes(Registry<Biome> 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);
}