class Camera;
class Client;
struct Nametag;
+struct MinimapMarker;
/*
SmoothTranslator
scene::IBillboardSceneNode *m_spritenode = nullptr;
scene::IDummyTransformationSceneNode *m_matrixnode = nullptr;
Nametag *m_nametag = nullptr;
+ MinimapMarker *m_marker = nullptr;
v3f m_position = v3f(0.0f, 10.0f * BS, 0);
v3f m_velocity;
v3f m_acceleration;
v3f m_attachment_position;
v3f m_attachment_rotation;
bool m_attached_to_local = false;
+ bool m_force_visible = false;
int m_anim_frame = 0;
int m_anim_num_frames = 1;
const bool isImmortal();
+ inline const ObjectProperties &getProperties() const { return m_prop; }
+
scene::ISceneNode *getSceneNode() const;
scene::IAnimatedMeshSceneNode *getAnimatedMeshSceneNode() const;
}
void setChildrenVisible(bool toset);
- void setAttachment(int parent_id, const std::string &bone, v3f position, v3f rotation);
+ void setAttachment(int parent_id, const std::string &bone, v3f position,
+ v3f rotation, bool force_visible);
void getAttachment(int *parent_id, std::string *bone, v3f *position,
- v3f *rotation) const;
+ v3f *rotation, bool *force_visible) const;
void clearChildAttachments();
void clearParentAttachment();
void addAttachmentChild(int child_id);
void removeFromScene(bool permanent);
- void addToScene(ITextureSource *tsrc);
+ void addToScene(ITextureSource *tsrc, scene::ISceneManager *smgr);
inline void expireVisuals()
{
void updateNametag();
+ void updateMarker();
+
void updateNodePos();
void step(float dtime, ClientEnvironment *env);
{
return m_prop.infotext;
}
+
+ void updateMeshCulling();
};