summaryrefslogtreecommitdiff
path: root/src/serverobject.h
diff options
context:
space:
mode:
authorsfan5 <sfan5@live.de>2017-09-15 12:19:01 +0200
committerLoïc Blot <nerzhul@users.noreply.github.com>2017-09-15 12:19:01 +0200
commit04839f233f37faa9af406ea66fc6c199127781eb (patch)
treed243fcae7f57fe4cf22046f42cda5424a1561e4c /src/serverobject.h
parentedbc533414b0ba991a82f8003d90924e1dc60d95 (diff)
downloadminetest-04839f233f37faa9af406ea66fc6c199127781eb.tar.gz
minetest-04839f233f37faa9af406ea66fc6c199127781eb.tar.bz2
minetest-04839f233f37faa9af406ea66fc6c199127781eb.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.h24
1 files changed, 14 insertions, 10 deletions
diff --git a/src/serverobject.h b/src/serverobject.h
index 33fc3e4a8..304281093 100644
--- a/src/serverobject.h
+++ b/src/serverobject.h
@@ -212,24 +212,28 @@ 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 = false;
+ 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 = 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
*/
bool m_static_exists = false;