implement BatchOption#isFullChunk, clarity change in Chunk

This commit is contained in:
Matt Worzala 2021-01-26 10:09:18 -05:00
parent eca3abe11d
commit ca8eac5356
2 changed files with 9 additions and 5 deletions

View File

@ -570,6 +570,7 @@ public abstract class Chunk implements Viewable, DataContainer {
@NotNull
protected ChunkDataPacket createChunkSectionUpdatePacket(int section) {
ChunkDataPacket chunkDataPacket = getFreshPartialDataPacket();
chunkDataPacket.fullChunk = false;
int[] sections = new int[CHUNK_SECTION_COUNT];
sections[section] = 1;
chunkDataPacket.sections = sections;

View File

@ -193,17 +193,20 @@ public class ChunkBatch implements Batch<ChunkCallback> {
private void singleThreadFlush(Instance instance, Chunk chunk, @Nullable ChunkBatch inverse,
@Nullable ChunkCallback callback, boolean safeCallback) {
try {
if (blocks.isEmpty()) {
OptionalCallback.execute(callback, chunk);
return;
}
if (!chunk.isLoaded()) {
LOGGER.warn("Unable to apply ChunkBatch to unloaded chunk ({}, {}) in {}.",
chunk.getChunkX(), chunk.getChunkZ(), instance.getUniqueId());
return;
}
if (this.options.isFullChunk())
chunk.reset();
if (blocks.isEmpty()) {
OptionalCallback.execute(callback, chunk);
return;
}
final IntSet sections = new IntArraySet();
synchronized (blocks) {
for (long block : blocks) {