8#include <unordered_set>
96 virtual void step(
float dtime,
bool send_recommended){}
134 float time_from_last_punch = 1000000.0f,
135 u16 initial_wear = 0)
152 virtual void setAnimation(
v2f frames,
float frame_speed,
float frame_blend,
bool frame_loop)
154 virtual void getAnimation(
v2f *frames,
float *frame_speed,
float *frame_blend,
bool *frame_loop)
165 {
static std::unordered_set<object_t> rv;
return rv; }
230 using Observers = std::optional<std::unordered_set<std::string>>;
std::unordered_map< std::string, BoneOverride > BoneOverrideMap
Definition activeobject.h:142
ActiveObjectType
Definition activeobject.h:14
static v2f dir(const v2f &pos_dist)
Definition camera.cpp:207
Definition activeobject.h:149
virtual ActiveObjectType getType() const =0
Definition inventory.h:277
Definition serveractiveobject.h:41
v3f getBasePosition() const
Definition serveractiveobject.h:65
virtual void setAnimationSpeed(float frame_speed)
Definition serveractiveobject.h:156
virtual void addPos(const v3f &added_pos)
Definition serveractiveobject.h:75
virtual bool setWieldedItem(const ItemStack &item)
Definition serveractiveobject.cpp:44
virtual BoneOverride getBoneOverride(const std::string &bone)
Definition serveractiveobject.h:160
virtual Inventory * getInventory() const
Definition serveractiveobject.h:173
void markForDeactivation()
Definition serveractiveobject.cpp:82
virtual bool shouldUnload() const
Definition serveractiveobject.h:127
virtual void setBoneOverride(const std::string &bone, const BoneOverride &props)
Definition serveractiveobject.h:158
ServerEnvironment * m_env
Definition serveractiveobject.h:251
virtual void setPos(const v3f &pos)
Definition serveractiveobject.h:73
virtual void onMarkedForDeactivation()
Definition serveractiveobject.h:248
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:102
virtual std::string getGUID() const =0
Returns an unique ID for this object (persistent across unload, server restarts).
bool m_static_exists
Definition serveractiveobject.h:222
virtual ItemStack getWieldedItem(ItemStack *selected, ItemStack *hand=nullptr) const
Definition serveractiveobject.cpp:35
std::optional< Observers > m_effective_observers
Definition serveractiveobject.h:246
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:162
virtual void getAnimation(v2f *frames, float *frame_speed, float *frame_blend, bool *frame_loop)
Definition serveractiveobject.h:154
std::unordered_set< u32 > m_attached_particle_spawners
Definition serveractiveobject.h:252
virtual void setInventoryModified()
Definition serveractiveobject.h:176
bool m_pending_deactivation
Definition serveractiveobject.h:262
std::optional< std::unordered_set< std::string > > Observers
Definition serveractiveobject.h:230
void markForRemoval()
Definition serveractiveobject.cpp:74
ServerActiveObject(ServerEnvironment *env, v3f pos)
Definition serveractiveobject.cpp:12
virtual void addedToEnvironment(u32 dtime_s)
Definition serveractiveobject.h:54
u16 m_known_by_count
Definition serveractiveobject.h:203
virtual ActiveObjectType getSendType() const
Definition serveractiveobject.h:50
void invalidateEffectiveObservers()
Invalidate final observer cache.
Definition serveractiveobject.cpp:95
void detachParticleSpawner(u32 id)
Definition serveractiveobject.h:189
virtual u16 getHP() const
Definition serveractiveobject.h:141
bool isPendingRemoval() const
Definition serveractiveobject.h:212
void attachParticleSpawner(u32 id)
Definition serveractiveobject.h:185
std::string generateUpdateInfantCommand(u16 infant_id, u16 protocol_version)
Definition serveractiveobject.cpp:49
virtual void setAnimation(v2f frames, float frame_speed, float frame_blend, bool frame_loop)
Definition serveractiveobject.h:152
virtual void setArmorGroups(const ItemGroupList &armor_groups)
Definition serveractiveobject.h:148
virtual const ItemGroupList & getArmorGroups() const
Definition serveractiveobject.h:150
virtual float getMinimumSavedMovement()
Definition serveractiveobject.cpp:30
void dumpAOMessagesToQueue(std::queue< ActiveObjectMessage > &queue)
Definition serveractiveobject.cpp:66
virtual ServerActiveObject * getParent() const
Definition serveractiveobject.h:166
ServerEnvironment * getEnv()
Definition serveractiveobject.h:67
std::queue< ActiveObjectMessage > m_messages_out
Definition serveractiveobject.h:278
virtual const std::unordered_set< object_t > & getAttachmentChildIds() const
Definition serveractiveobject.h:164
virtual std::string getWieldList() const
Definition serveractiveobject.h:178
virtual void notifyObjectPropertiesModified()
Definition serveractiveobject.h:169
virtual void getStaticData(std::string *result) const
Definition serveractiveobject.h:109
virtual void rightClick(ServerActiveObject *clicker)
Definition serveractiveobject.h:137
virtual u16 getWieldIndex() const
Definition serveractiveobject.h:180
virtual void removingFromEnvironment()
Definition serveractiveobject.h:56
virtual void step(float dtime, bool send_recommended)
Definition serveractiveobject.h:96
virtual std::string getDescription()
Definition serveractiveobject.h:84
virtual bool isStaticAllowed() const
Definition serveractiveobject.h:119
v3s16 m_static_block
Definition serveractiveobject.h:227
void setBasePosition(v3f pos)
Definition serveractiveobject.cpp:19
virtual void onMarkedForRemoval()
Definition serveractiveobject.h:249
virtual ObjectProperties * accessObjectProperties()
Definition serveractiveobject.h:167
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:131
virtual InventoryLocation getInventoryLocation() const
Definition serveractiveobject.cpp:90
Observers m_observers
Definition serveractiveobject.h:231
virtual ~ServerActiveObject()=default
virtual void moveTo(v3f pos, bool continuous)
Definition serveractiveobject.h:78
virtual void setHP(s32 hp, const PlayerHPChangeReason &reason)
Definition serveractiveobject.h:139
bool m_pending_removal
Definition serveractiveobject.h:273
bool isGone() const
Definition serveractiveobject.h:209
v3f m_base_position
Definition serveractiveobject.h:281
Definition serverenvironment.h:113
core::vector2d< f32 > v2f
Definition irr_v2d.h:11
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:63
Definition inventorymanager.h:18
Definition inventory.h:21
Definition object_properties.h:32
Definition player_sao.h:235