Skip to content

Commit

Permalink
Move addition to full chunk map before calling callbacks
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
Spottedleaf committed Jun 19, 2024
1 parent 393bd84 commit 4911c50
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -80,12 +80,20 @@ public static void onChunkHolderDelete(final ServerLevel level, final ChunkHolde

}

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);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1276,6 +1276,7 @@ public boolean handleFullStatusChange(final List<NewChunkHolder> changedFullStat
// 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);
Expand Down Expand Up @@ -1313,6 +1314,7 @@ public boolean handleFullStatusChange(final List<NewChunkHolder> changedFullStat
this.onFullChunkLoadChange(false, changedFullStatus);
this.changeEntityChunkStatus(FullChunkStatus.INACCESSIBLE);
ChunkSystem.onChunkNotBorder(chunk, this.vanillaChunkHolder);
ChunkSystem.onChunkPostNotBorder(chunk, this.vanillaChunkHolder);
this.updateCurrentState(FullChunkStatus.INACCESSIBLE);
}
}
Expand Down

0 comments on commit 4911c50

Please sign in to comment.