8#include <unordered_set>
97 virtual void step(
float dtime,
bool send_recommended){}
135 float time_from_last_punch = 1000000.0f,
136 u16 initial_wear = 0)
156 virtual void setAnimation(
const scene::TrackId &track, scene::TrackAnimSpec anim_spec)
160 virtual std::vector<std::pair<scene::TrackId, scene::TrackAnimSpec>>
getAllAnimations()
const
162 virtual std::optional<scene::TrackAnimSpec>
getAnimation(
const scene::TrackId &track)
const
163 {
return std::nullopt; }
174 {
static std::unordered_set<object_t> rv;
return rv; }
239 using Observers = std::optional<std::unordered_set<std::string>>;
std::unordered_map< std::string, BoneOverride > BoneOverrideMap
Definition activeobject.h:149
ActiveObjectType
Definition activeobject.h:15
static v2f dir(const v2f &pos_dist)
Definition camera.cpp:205
ActiveObject(object_t id)
Definition activeobject.h:160
virtual ActiveObjectType getType() const =0
Definition inventory.h:277
v3f getBasePosition() const
Definition serveractiveobject.h:66
virtual void addPos(const v3f &added_pos)
Definition serveractiveobject.h:76
virtual bool setWieldedItem(const ItemStack &item)
Definition serveractiveobject.cpp:44
virtual BoneOverride getBoneOverride(const std::string &bone)
Definition serveractiveobject.h:169
virtual Inventory * getInventory() const
Definition serveractiveobject.h:182
void markForDeactivation()
Definition serveractiveobject.cpp:82
virtual bool shouldUnload() const
Definition serveractiveobject.h:128
virtual void setBoneOverride(const std::string &bone, const BoneOverride &props)
Definition serveractiveobject.h:167
ServerEnvironment * m_env
Definition serveractiveobject.h:260
virtual void setPos(const v3f &pos)
Definition serveractiveobject.h:74
virtual void onMarkedForDeactivation()
Definition serveractiveobject.h:257
const Observers & recalculateEffectiveObservers()
Force a recalculation of final observers (including all parents).
Definition serveractiveobject.cpp:125
const Observers & getEffectiveObservers()
Cache m_effective_observers with the names of all observers, also indirect observers (object attachme...
Definition serveractiveobject.cpp:102
virtual std::string getClientInitializationData(u16 protocol_version)
Definition serveractiveobject.h:103
virtual std::string getGUID() const =0
Returns a unique ID for this object (persistent across unload, server restarts).
bool m_static_exists
Definition serveractiveobject.h:231
virtual ItemStack getWieldedItem(ItemStack *selected, ItemStack *hand=nullptr) const
Definition serveractiveobject.cpp:35
std::optional< Observers > m_effective_observers
Definition serveractiveobject.h:255
bool isEffectivelyObservedBy(const std::string &player_name)
Whether the object is sent to player_name.
Definition serveractiveobject.cpp:134
virtual const BoneOverrideMap & getBoneOverrides() const
Definition serveractiveobject.h:171
std::unordered_set< u32 > m_attached_particle_spawners
Definition serveractiveobject.h:261
virtual void setInventoryModified()
Definition serveractiveobject.h:185
bool m_pending_deactivation
Definition serveractiveobject.h:271
std::optional< std::unordered_set< std::string > > Observers
Definition serveractiveobject.h:239
void markForRemoval()
Definition serveractiveobject.cpp:74
ServerActiveObject(ServerEnvironment *env, v3f pos)
Definition serveractiveobject.cpp:12
virtual void addedToEnvironment(u32 dtime_s)
Definition serveractiveobject.h:55
u16 m_known_by_count
Definition serveractiveobject.h:212
virtual ActiveObjectType getSendType() const
Definition serveractiveobject.h:51
void invalidateEffectiveObservers()
Invalidate final observer cache.
Definition serveractiveobject.cpp:95
void detachParticleSpawner(u32 id)
Definition serveractiveobject.h:198
virtual u16 getHP() const
Definition serveractiveobject.h:142
virtual void stopAnimation(const scene::TrackId &track)
Definition serveractiveobject.h:158
bool isPendingRemoval() const
Definition serveractiveobject.h:221
virtual void setAnimation(const scene::TrackId &track, scene::TrackAnimSpec anim_spec)
Definition serveractiveobject.h:156
void attachParticleSpawner(u32 id)
Definition serveractiveobject.h:194
std::string generateUpdateInfantCommand(u16 infant_id, u16 protocol_version)
Definition serveractiveobject.cpp:49
virtual void setArmorGroups(const ItemGroupList &armor_groups)
Definition serveractiveobject.h:149
virtual const ItemGroupList & getArmorGroups() const
Definition serveractiveobject.h:151
virtual std::optional< scene::TrackAnimSpec > getAnimation(const scene::TrackId &track) const
Definition serveractiveobject.h:162
virtual float getMinimumSavedMovement()
Definition serveractiveobject.cpp:30
void dumpAOMessagesToQueue(std::queue< ActiveObjectMessage > &queue)
Definition serveractiveobject.cpp:66
virtual ServerActiveObject * getParent() const
Definition serveractiveobject.h:175
ServerEnvironment * getEnv()
Definition serveractiveobject.h:68
std::queue< ActiveObjectMessage > m_messages_out
Definition serveractiveobject.h:287
virtual const std::unordered_set< object_t > & getAttachmentChildIds() const
Definition serveractiveobject.h:173
virtual std::string getWieldList() const
Definition serveractiveobject.h:187
virtual void notifyObjectPropertiesModified()
Definition serveractiveobject.h:178
virtual void getStaticData(std::string *result) const
Definition serveractiveobject.h:110
virtual void rightClick(ServerActiveObject *clicker)
Definition serveractiveobject.h:138
virtual u16 getWieldIndex() const
Definition serveractiveobject.h:189
virtual void removingFromEnvironment()
Definition serveractiveobject.h:57
virtual void step(float dtime, bool send_recommended)
Definition serveractiveobject.h:97
virtual std::vector< std::pair< scene::TrackId, scene::TrackAnimSpec > > getAllAnimations() const
Definition serveractiveobject.h:160
virtual std::string getDescription()
Definition serveractiveobject.h:85
virtual bool isStaticAllowed() const
Definition serveractiveobject.h:120
v3s16 m_static_block
Definition serveractiveobject.h:236
void setBasePosition(v3f pos)
Definition serveractiveobject.cpp:19
virtual void onMarkedForRemoval()
Definition serveractiveobject.h:258
virtual ObjectProperties * accessObjectProperties()
Definition serveractiveobject.h:176
virtual u32 punch(v3f dir, const ToolCapabilities &toolcap, ServerActiveObject *puncher=nullptr, float time_from_last_punch=1000000.0f, u16 initial_wear=0)
Definition serveractiveobject.h:132
virtual InventoryLocation getInventoryLocation() const
Definition serveractiveobject.cpp:90
Observers m_observers
Definition serveractiveobject.h:240
virtual ~ServerActiveObject()=default
virtual void moveTo(v3f pos, bool continuous)
Definition serveractiveobject.h:79
virtual void setAnimationSpeed(const scene::TrackId &track, f32 fps)
Definition serveractiveobject.h:164
virtual void setHP(s32 hp, const PlayerHPChangeReason &reason)
Definition serveractiveobject.h:140
bool m_pending_removal
Definition serveractiveobject.h:282
bool isGone() const
Definition serveractiveobject.h:218
v3f m_base_position
Definition serveractiveobject.h:290
Definition serverenvironment.h:113
core::vector3d< s16 > v3s16
Definition irr_v3d.h:13
core::vector3df v3f
Definition irr_v3d.h:11
std::unordered_map< std::string, int > ItemGroupList
Definition itemgroup.h:10
Definition activeobject.h:70
Definition inventorymanager.h:18
Definition inventory.h:21
Definition object_properties.h:39
Definition player_sao.h:235