X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Fserverobject.h;h=304281093cc20302b4cd414803508fd5f6763746;hb=b4df0d67dd9fca20df632f0247b97f8370757a3c;hp=140ff9f4ac2118347306760acc18fa2d12c27662;hpb=921151d97a2fb2238ab514324fb95e2732248b96;p=minetest.git diff --git a/src/serverobject.h b/src/serverobject.h index 140ff9f4a..304281093 100644 --- a/src/serverobject.h +++ b/src/serverobject.h @@ -55,7 +55,7 @@ class ServerActiveObject : public ActiveObject Prototypes are used that way. */ ServerActiveObject(ServerEnvironment *env, v3f pos); - virtual ~ServerActiveObject(); + virtual ~ServerActiveObject() = default; virtual ActiveObjectType getSendType() const { return getType(); } @@ -154,6 +154,8 @@ class ServerActiveObject : public ActiveObject {} virtual void getAnimation(v2f *frames, float *frame_speed, float *frame_blend, bool *frame_loop) {} + virtual void setAnimationSpeed(float frame_speed) + {} virtual void setBonePosition(const std::string &bone, v3f position, v3f rotation) {} virtual void getBonePosition(const std::string &bone, v3f *position, v3f *lotation) @@ -210,23 +212,27 @@ class ServerActiveObject : public ActiveObject 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 */