Give access to Chunk to ChunkPopulator

This commit is contained in:
Felix Cravic 2020-07-04 00:10:08 +02:00
parent 5460d8e6c4
commit 2fc29037fb
2 changed files with 5 additions and 5 deletions

View File

@ -4,6 +4,6 @@ import net.minestom.server.instance.batch.ChunkBatch;
public interface ChunkPopulator { public interface ChunkPopulator {
void populateChunk(ChunkBatch batch, int chunkX, int chunkZ); void populateChunk(ChunkBatch batch, Chunk chunk);
} }

View File

@ -62,19 +62,19 @@ public class ChunkBatch implements InstanceBatch {
public void flushChunkGenerator(ChunkGenerator chunkGenerator, Consumer<Chunk> callback) { public void flushChunkGenerator(ChunkGenerator chunkGenerator, Consumer<Chunk> callback) {
batchesPool.execute(() -> { batchesPool.execute(() -> {
List<ChunkPopulator> populators = chunkGenerator.getPopulators(); final List<ChunkPopulator> populators = chunkGenerator.getPopulators();
boolean hasPopulator = populators != null && populators.isEmpty(); final boolean hasPopulator = populators != null && populators.isEmpty();
chunkGenerator.generateChunkData(this, chunk.getChunkX(), chunk.getChunkZ()); chunkGenerator.generateChunkData(this, chunk.getChunkX(), chunk.getChunkZ());
singleThreadFlush(hasPopulator ? null : callback); singleThreadFlush(hasPopulator ? null : callback);
clearData(); // So the populators won't place those blocks again clearData(); // So the populators won't place those blocks again
if (populators != null && !populators.isEmpty()) { if (hasPopulator) {
Iterator<ChunkPopulator> populatorIterator = populators.iterator(); Iterator<ChunkPopulator> populatorIterator = populators.iterator();
while (populatorIterator.hasNext()) { while (populatorIterator.hasNext()) {
ChunkPopulator chunkPopulator = populatorIterator.next(); ChunkPopulator chunkPopulator = populatorIterator.next();
chunkPopulator.populateChunk(this, chunk.getChunkX(), chunk.getChunkZ()); chunkPopulator.populateChunk(this, chunk);
} }
singleThreadFlush(callback); singleThreadFlush(callback);
} }