virtual void addedToEnvironment(u32 dtime_s);
static ServerActiveObject* create(ServerEnvironment *env, v3f pos,
const std::string &data);
+ bool isAttached();
void step(float dtime, bool send_recommended);
- std::string getClientInitializationData();
+ std::string getClientInitializationData(u16 protocol_version);
std::string getStaticData();
int punch(v3f dir,
const ToolCapabilities *toolcap=NULL,
void setHP(s16 hp);
s16 getHP() const;
void setArmorGroups(const ItemGroupList &armor_groups);
- void setAnimations(v2f frames, float frame_speed, float frame_blend);
- void setBonePosRot(std::string bone, v3f position, v3f rotation);
- void setAttachment(ServerActiveObject *parent, std::string bone, v3f position, v3f rotation);
+ void setAnimation(v2f frame_range, float frame_speed, float frame_blend);
+ void setBonePosition(std::string bone, v3f position, v3f rotation);
+ void setAttachment(int parent_id, std::string bone, v3f position, v3f rotation);
ObjectProperties* accessObjectProperties();
void notifyObjectPropertiesModified();
/* LuaEntitySAO-specific */
float m_last_sent_move_precision;
bool m_armor_groups_sent;
- v2f m_animation_frames;
+ v2f m_animation_range;
float m_animation_speed;
float m_animation_blend;
- bool m_animations_sent;
+ bool m_animation_sent;
+
+ std::map<std::string, core::vector2d<v3f> > m_bone_position;
+ bool m_bone_position_sent;
- std::map<std::string, core::vector2d<v3f> > m_animation_bone;
- bool m_animations_bone_sent;
-
- ServerActiveObject *m_parent;
int m_attachment_parent_id;
std::string m_attachment_bone;
v3f m_attachment_position;
void removingFromEnvironment();
bool isStaticAllowed() const;
bool unlimitedTransferDistance() const;
- std::string getClientInitializationData();
+ std::string getClientInitializationData(u16 protocol_version);
std::string getStaticData();
+ bool isAttached();
void step(float dtime, bool send_recommended);
void setBasePosition(const v3f &position);
void setPos(v3f pos);
void setHP(s16 hp);
void setArmorGroups(const ItemGroupList &armor_groups);
- void setAnimations(v2f frames, float frame_speed, float frame_blend);
- void setBonePosRot(std::string bone, v3f position, v3f rotation);
- void setAttachment(ServerActiveObject *parent, std::string bone, v3f position, v3f rotation);
+ void setAnimation(v2f frame_range, float frame_speed, float frame_blend);
+ void setBonePosition(std::string bone, v3f position, v3f rotation);
+ void setAttachment(int parent_id, std::string bone, v3f position, v3f rotation);
ObjectProperties* accessObjectProperties();
void notifyObjectPropertiesModified();
std::set<std::string> m_privs;
bool m_is_singleplayer;
- v2f m_animation_frames;
+ v2f m_animation_range;
float m_animation_speed;
float m_animation_blend;
- bool m_animations_sent;
+ bool m_animation_sent;
+
+ std::map<std::string, core::vector2d<v3f> > m_bone_position; // Stores position and rotation for each bone name
+ bool m_bone_position_sent;
- std::map<std::string, core::vector2d<v3f> > m_animation_bone;
- bool m_animations_bone_sent;
-
- ServerActiveObject *m_parent;
int m_attachment_parent_id;
std::string m_attachment_bone;
v3f m_attachment_position;
public:
// Some flags used by Server
- bool m_teleported;
+ bool m_moved;
bool m_inventory_not_sent;
bool m_hp_not_sent;
bool m_wielded_item_not_sent;