Chunks::saveAndClear() fix (F5 fix)

This commit is contained in:
MihailRis 2024-04-26 16:13:07 +03:00
parent 87ec71154f
commit a71314bdad
2 changed files with 12 additions and 4 deletions

View File

@ -67,6 +67,10 @@ public:
WorldRegions& getRegions() {
return regions;
}
bool doesWriteLights() const {
return doWriteLights;
}
};
#endif // FILES_WORLD_FILES_H_

View File

@ -487,11 +487,15 @@ void Chunks::saveAndClear(){
auto& regions = worldFiles->getRegions();
for (size_t i = 0; i < volume; i++){
Chunk* chunk = chunks[i].get();
if (chunk) {
regions.put(chunk);
events->trigger(EVT_CHUNK_HIDDEN, chunk);
}
chunks[i] = nullptr;
if (chunk == nullptr || !chunk->isLighted())
continue;
bool lightsUnsaved = !chunk->isLoadedLights() &&
worldFiles->doesWriteLights();
if (!chunk->isUnsaved() && !lightsUnsaved)
continue;
regions.put(chunk);
}
chunksCount = 0;
}