Move addition to full chunk map before calling callbacks
The full chunk map should mirror immediately the full chunk status, so it should be added immediately after upgrading to FULL or removed immediately before downgrading to INACCESSIBLE.
This commit is contained in:
@@ -80,12 +80,20 @@ public final class ChunkSystem {
|
||||
|
||||
}
|
||||
|
||||
public static void onChunkBorder(final LevelChunk chunk, final ChunkHolder holder) {
|
||||
public static void onChunkPreBorder(final LevelChunk chunk, final ChunkHolder holder) {
|
||||
((ChunkSystemServerChunkCache)((ServerLevel)chunk.getLevel()).getChunkSource())
|
||||
.moonrise$setFullChunk(chunk.getPos().x, chunk.getPos().z, chunk);
|
||||
}
|
||||
|
||||
public static void onChunkBorder(final LevelChunk chunk, final ChunkHolder holder) {
|
||||
|
||||
}
|
||||
|
||||
public static void onChunkNotBorder(final LevelChunk chunk, final ChunkHolder holder) {
|
||||
|
||||
}
|
||||
|
||||
public static void onChunkPostNotBorder(final LevelChunk chunk, final ChunkHolder holder) {
|
||||
((ChunkSystemServerChunkCache)((ServerLevel)chunk.getLevel()).getChunkSource())
|
||||
.moonrise$setFullChunk(chunk.getPos().x, chunk.getPos().z, null);
|
||||
}
|
||||
|
||||
@@ -1276,6 +1276,7 @@ public final class NewChunkHolder {
|
||||
// state upgrade
|
||||
if (!current.isOrAfter(FullChunkStatus.FULL) && pending.isOrAfter(FullChunkStatus.FULL)) {
|
||||
this.updateCurrentState(FullChunkStatus.FULL);
|
||||
ChunkSystem.onChunkPreBorder(chunk, this.vanillaChunkHolder);
|
||||
this.scheduler.chunkHolderManager.ensureInAutosave(this);
|
||||
this.changeEntityChunkStatus(FullChunkStatus.FULL);
|
||||
ChunkSystem.onChunkBorder(chunk, this.vanillaChunkHolder);
|
||||
@@ -1313,6 +1314,7 @@ public final class NewChunkHolder {
|
||||
this.onFullChunkLoadChange(false, changedFullStatus);
|
||||
this.changeEntityChunkStatus(FullChunkStatus.INACCESSIBLE);
|
||||
ChunkSystem.onChunkNotBorder(chunk, this.vanillaChunkHolder);
|
||||
ChunkSystem.onChunkPostNotBorder(chunk, this.vanillaChunkHolder);
|
||||
this.updateCurrentState(FullChunkStatus.INACCESSIBLE);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user