diff options
author | sfan5 <sfan5@live.de> | 2017-09-15 12:19:01 +0200 |
---|---|---|
committer | SmallJoker <mk939@ymail.com> | 2018-06-03 17:31:59 +0200 |
commit | c2a0333901a696f7dcb67356aeb0206b89be14e6 (patch) | |
tree | 11d378e7426f53797e94e6f0d103164ffe1356cf /src/serverobject.h | |
parent | 5b2461c713889b9832f5b99c85abf87e5d494242 (diff) | |
download | minetest-c2a0333901a696f7dcb67356aeb0206b89be14e6.tar.gz minetest-c2a0333901a696f7dcb67356aeb0206b89be14e6.tar.bz2 minetest-c2a0333901a696f7dcb67356aeb0206b89be14e6.zip |
ServerEnv: Clean up object lifecycle handling (#6414)
* ServerEnv: Clean up object lifecycle handling
Diffstat (limited to 'src/serverobject.h')
-rw-r--r-- | src/serverobject.h | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/src/serverobject.h b/src/serverobject.h index 38204980e..31af5d6a7 100644 --- a/src/serverobject.h +++ b/src/serverobject.h @@ -210,22 +210,26 @@ public: it anymore. - Removal is delayed to preserve the id for the time during which it could be confused to some other object by some client. - - This is set to true by the step() method when the object wants - to be deleted. - - This can be set to true by anything else too. + - This is usually set to true by the step() method when the object wants + to be deleted but can be set by anything else too. */ - bool m_removed; + bool m_pending_removal = false; /* - This is set to true when an object should be removed from the active - object list but couldn't be removed because the id has to be - reserved for some client. + Same purpose as m_pending_removal but for deactivation. + deactvation = save static data in block, remove active object - The environment checks this periodically. If this is true and also - m_known_by_count is true, object is deleted from the active object - list. + If this is set alongside with m_pending_removal, removal takes + priority. */ - bool m_pending_deactivation; + bool m_pending_deactivation = false; + + /* + A getter that unifies the above to answer the question: + "Can the environment still interact with this object?" + */ + inline bool isGone() const + { return m_pending_removal || m_pending_deactivation; } /* Whether the object's static data has been stored to a block |