+ v3s16 getFootstepNodePos();
+
+ // Used to check if anything changed and prevent sending packets if not
+ v3f last_position;
+ v3f last_speed;
+ float last_pitch;
+ float last_yaw;
+ unsigned int last_keyPressed;
+ u8 last_camera_fov;
+ u8 last_wanted_range;
+
+ float camera_impact;
+
+ bool makes_footstep_sound;
+
+ int last_animation;
+ float last_animation_speed;
+
+ std::string hotbar_image;
+ std::string hotbar_selected_image;
+
+ video::SColor light_color;
+
+ float hurt_tilt_timer;
+ float hurt_tilt_strength;
+
+ GenericCAO *getCAO() const { return m_cao; }
+
+ void setCAO(GenericCAO *toset)
+ {
+ assert(m_cao == NULL); // Pre-condition
+ m_cao = toset;
+ }
+
+ u32 maxHudId() const { return hud.size(); }
+
+ u16 getBreath() const { return m_breath; }
+ void setBreath(u16 breath) { m_breath = breath; }
+
+ v3s16 getLightPosition() const;
+
+ void setYaw(f32 yaw) { m_yaw = yaw; }
+
+ f32 getYaw() const { return m_yaw; }
+
+ void setPitch(f32 pitch) { m_pitch = pitch; }
+
+ f32 getPitch() const { return m_pitch; }
+
+ inline void setPosition(const v3f &position)
+ {
+ m_position = position;
+ m_sneak_node_exists = false;
+ }
+
+ v3f getPosition() const { return m_position; }
+ v3f getEyePosition() const { return m_position + getEyeOffset(); }
+ v3f getEyeOffset() const;
+