1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-06-27 16:36:03 +00:00

Add '/clearobjects quick'

This commit is contained in:
Kahrl 2016-02-08 22:20:04 +01:00 committed by paramat
parent 47464c9344
commit b1428ab4bb
6 changed files with 124 additions and 51 deletions

View file

@ -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<u16> &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<ABMWithState> m_abms;
// An interval for generally sending object positions and stuff
float m_recommended_send_interval;