#include "itemgroup.h"
class Camera;
+class Client;
struct Nametag;
/*
//
scene::ISceneManager *m_smgr;
IrrlichtDevice *m_irr;
- IGameDef *m_gamedef;
+ Client *m_client;
aabb3f m_selection_box;
scene::IMeshSceneNode *m_meshnode;
scene::IAnimatedMeshSceneNode *m_animated_meshnode;
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
ClientActiveObject *getParent();
- bool getCollisionBox(aabb3f *toset);
+ bool getCollisionBox(aabb3f *toset) const;
- bool collideWithObjects();
+ bool collideWithObjects() const;
aabb3f *getSelectionBox();
v3f getPosition();
+ inline float getYaw() const
+ {
+ return m_yaw;
+ }
scene::ISceneNode *getSceneNode();
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();