#include "object_properties.h"
#include "itemgroup.h"
+class Camera;
+class Client;
+struct Nametag;
+
/*
SmoothTranslator
*/
//
scene::ISceneManager *m_smgr;
IrrlichtDevice *m_irr;
- core::aabbox3d<f32> m_selection_box;
+ Client *m_client;
+ aabb3f m_selection_box;
scene::IMeshSceneNode *m_meshnode;
scene::IAnimatedMeshSceneNode *m_animated_meshnode;
WieldMeshSceneNode *m_wield_meshnode;
scene::IBillboardSceneNode *m_spritenode;
- scene::ITextSceneNode* m_textnode;
+ Nametag* m_nametag;
v3f m_position;
v3f m_velocity;
v3f m_acceleration;
int m_animation_speed;
int m_animation_blend;
bool m_animation_loop;
- std::map<std::string, core::vector2d<v3f> > m_bone_position; // stores position and rotation for each bone name
+ UNORDERED_MAP<std::string, core::vector2d<v3f> > m_bone_position; // stores position and rotation for each bone name
std::string m_attachment_bone;
v3f m_attachment_position;
v3f m_attachment_rotation;
float m_anim_timer;
ItemGroupList m_armor_groups;
float m_reset_textures_timer;
+ std::string m_previous_texture_modifier; // stores texture modifier before punch update
+ std::string m_current_texture_modifier; // last applied texture modifier
bool m_visuals_expired;
float m_step_distance_counter;
u8 m_last_light;
std::vector<u16> m_children;
public:
- GenericCAO(IGameDef *gamedef, ClientEnvironment *env);
+ GenericCAO(Client *client, ClientEnvironment *env);
~GenericCAO();
- static ClientActiveObject* create(IGameDef *gamedef, ClientEnvironment *env)
+ static ClientActiveObject* create(Client *client, ClientEnvironment *env)
{
- return new GenericCAO(gamedef, env);
+ return new GenericCAO(client, env);
}
inline ActiveObjectType getType() const
void initialize(const std::string &data);
+ void processInitData(const std::string &data);
+
ClientActiveObject *getParent();
- bool getCollisionBox(aabb3f *toset);
+ bool getCollisionBox(aabb3f *toset) const;
- bool collideWithObjects();
+ bool collideWithObjects() const;
- core::aabbox3d<f32>* getSelectionBox();
+ aabb3f *getSelectionBox();
v3f getPosition();
+ inline float getYaw() const
+ {
+ return m_yaw;
+ }
scene::ISceneNode *getSceneNode();
- scene::IMeshSceneNode *getMeshSceneNode();
-
scene::IAnimatedMeshSceneNode *getAnimatedMeshSceneNode();
- WieldMeshSceneNode *getWieldMeshSceneNode();
-
- scene::IBillboardSceneNode *getSpriteSceneNode();
-
- inline bool isPlayer() const
- {
- return m_is_player;
- }
-
inline bool isLocalPlayer() const
{
return m_is_local_player;
void updateTexturePos();
- void updateTextures(const std::string &mod);
+ // std::string copy is mandatory as mod can be a class member and there is a swap
+ // on those class members
+ void updateTextures(std::string mod);
void updateAnimation();
float time_from_last_punch=1000000);
std::string debugInfoText();
+
+ std::string infoText()
+ {
+ return m_prop.infotext;
+ }
};