1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-07-02 16:38:41 +00:00

Safely handle block deletion (#13315)

Co-authored-by: Jude Melton-Houghton <jwmhjwmh@gmail.com>
This commit is contained in:
DS 2023-03-24 12:34:44 +01:00 committed by GitHub
parent f3b198e490
commit ed632f3854
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 74 additions and 5 deletions

View file

@ -412,8 +412,15 @@ public:
// Database version
void loadBlock(std::string *blob, v3s16 p3d, MapSector *sector, bool save_after_load=false);
// Blocks are removed from the map but not deleted from memory until
// deleteDetachedBlocks() is called, since pointers to them may still exist
// when deleteBlock() is called.
bool deleteBlock(v3s16 blockpos) override;
void deleteDetachedBlocks();
void step();
void updateVManip(v3s16 pos);
// For debug printing
@ -457,6 +464,9 @@ private:
std::set<v3s16> m_chunks_in_progress;
// used by deleteBlock() and deleteDetachedBlocks()
MapBlockVect m_detached_blocks;
// Queued transforming water nodes
UniqueQueue<v3s16> m_transforming_liquid;
f32 m_transforming_liquid_loop_count_multiplier = 1.0f;