From 60bc040a9c2ca6612128078c2178391f23e65a74 Mon Sep 17 00:00:00 2001 From: Tiger Wang Date: Thu, 24 Dec 2020 15:28:22 +0000 Subject: Make SetAllData's MarkDirty() the chunk's responsibility --- src/Chunk.cpp | 7 ++++++- 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(); } -- cgit v1.2.3