From b1428ab4bb1e2cf73bc8ac951d41d22203ea68a0 Mon Sep 17 00:00:00 2001 From: Kahrl Date: Mon, 8 Feb 2016 22:20:04 +0100 Subject: Add '/clearobjects quick' --- src/environment.h | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'src/environment.h') diff --git a/src/environment.h b/src/environment.h index 1aaa5091f..e7b818dc9 100644 --- a/src/environment.h +++ b/src/environment.h @@ -203,6 +203,18 @@ public: private: }; +/* + Operation mode for ServerEnvironment::clearObjects() +*/ +enum ClearObjectsMode { + // Load and go through every mapblock, clearing objects + CLEAR_OBJECTS_MODE_FULL, + + // Clear objects immediately in loaded mapblocks; + // clear objects in unloaded mapblocks only when the mapblocks are next activated. + CLEAR_OBJECTS_MODE_QUICK, +}; + /* The server-side environment. @@ -319,8 +331,8 @@ public: // Find all active objects inside a radius around a point void getObjectsInsideRadius(std::vector &objects, v3f pos, float radius); - // Clear all objects, loading and going through every MapBlock - void clearAllObjects(); + // Clear objects, loading and going through every MapBlock + void clearObjects(ClearObjectsMode mode); // This makes stuff happen void step(f32 dtime); @@ -410,6 +422,10 @@ private: u32 m_game_time; // A helper variable for incrementing the latter float m_game_time_fraction_counter; + // Time of last clearObjects call (game time). + // When a mapblock older than this is loaded, its objects are cleared. + u32 m_last_clear_objects_time; + // Active block modifiers std::vector m_abms; // An interval for generally sending object positions and stuff float m_recommended_send_interval; -- cgit v1.2.3