diff options
author | Tiger Wang <ziwei.tiger@outlook.com> | 2020-12-24 16:28:22 +0100 |
---|---|---|
committer | Tiger Wang <ziwei.tiger@outlook.com> | 2020-12-26 18:55:45 +0100 |
commit | 60bc040a9c2ca6612128078c2178391f23e65a74 (patch) | |
tree | 4e8988667fc583a9abbf69a09733977a24ccac02 /src | |
parent | Avoid a gratuitous dirty when loading chunks with entities (diff) | |
download | cuberite-60bc040a9c2ca6612128078c2178391f23e65a74.tar cuberite-60bc040a9c2ca6612128078c2178391f23e65a74.tar.gz cuberite-60bc040a9c2ca6612128078c2178391f23e65a74.tar.bz2 cuberite-60bc040a9c2ca6612128078c2178391f23e65a74.tar.lz cuberite-60bc040a9c2ca6612128078c2178391f23e65a74.tar.xz cuberite-60bc040a9c2ca6612128078c2178391f23e65a74.tar.zst cuberite-60bc040a9c2ca6612128078c2178391f23e65a74.zip |
Diffstat (limited to 'src')
-rw-r--r-- | src/Chunk.cpp | 7 | ||||
-rw-r--r-- | src/ChunkMap.cpp | 6 |
2 files changed, 6 insertions, 7 deletions
diff --git a/src/Chunk.cpp b/src/Chunk.cpp index fc128b31c..0d0b0896a 100644 --- a/src/Chunk.cpp +++ b/src/Chunk.cpp @@ -352,6 +352,11 @@ void cChunk::SetAllData(cSetChunkData & a_SetChunkData) // Set the chunk data as valid. This may be needed for some simulators that perform actions upon block adding (Vaporize) SetPresence(cpPresent); + if (a_SetChunkData.ShouldMarkDirty()) + { + MarkDirty(); + } + // Wake up all simulators for their respective blocks: WakeUpSimulators(); @@ -371,9 +376,9 @@ void cChunk::SetLight( // Postponing until we see how bad it is :) m_ChunkData.SetBlockLight(a_BlockLight); - m_ChunkData.SetSkyLight(a_SkyLight); + MarkDirty(); m_IsLightValid = true; } diff --git a/src/ChunkMap.cpp b/src/ChunkMap.cpp index 4425ebb23..a2cd621d7 100644 --- a/src/ChunkMap.cpp +++ b/src/ChunkMap.cpp @@ -245,11 +245,6 @@ void cChunkMap::SetChunkData(cSetChunkData & a_SetChunkData) ASSERT(Chunk != nullptr); // Chunk cannot have unloaded since it is marked as queued Chunk->SetAllData(a_SetChunkData); - if (a_SetChunkData.ShouldMarkDirty()) - { - Chunk->MarkDirty(); - } - // Notify relevant ChunkStays: cChunkStays ToBeDisabled; for (cChunkStays::iterator itr = m_ChunkStays.begin(), end = m_ChunkStays.end(); itr != end; ++itr) @@ -290,7 +285,6 @@ void cChunkMap::ChunkLighted( return; } Chunk->SetLight(a_BlockLight, a_SkyLight); - Chunk->MarkDirty(); } |