mirror of
https://github.com/luanti-org/luanti.git
synced 2025-06-27 16:36:03 +00:00
ServerEnv: Clean up object lifecycle handling (#6414)
* ServerEnv: Clean up object lifecycle handling
This commit is contained in:
parent
edbc533414
commit
04839f233f
8 changed files with 175 additions and 213 deletions
|
@ -212,23 +212,27 @@ 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
|
||||
*/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue