+ void SetState(const EntityState &s) noexcept { state = s; }
+ EntityState &GetState() noexcept { return state; }
+ const EntityState &GetState() const noexcept { return state; }
+
+ void Ref() noexcept { ++ref_count; }
+ void UnRef() noexcept { --ref_count; }
+ void Kill() noexcept { dead = true; }
+ bool Referenced() const noexcept { return ref_count > 0; }
+ bool Dead() const noexcept { return dead; }
+ bool CanRemove() const noexcept { return dead && ref_count <= 0; }
+