]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/client/localplayer.h
Fix some debug info showing despite being disabled in the UI (#12205)
[dragonfireclient.git] / src / client / localplayer.h
index 16e7996ae8ebba9f92eb198bfbfe2490939ad428..3d0072fc1110f025607b4786db416db1c973fc30 100644 (file)
@@ -23,6 +23,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include "environment.h"
 #include "constants.h"
 #include "settings.h"
+#include "lighting.h"
 #include <list>
 
 class Client;
@@ -47,19 +48,16 @@ class LocalPlayer : public Player
        LocalPlayer(Client *client, const char *name);
        virtual ~LocalPlayer() = default;
 
-       ClientActiveObject *parent = nullptr;
-
        // Initialize hp to 0, so that no hearts will be shown if server
        // doesn't support health points
        u16 hp = 0;
-       bool isAttached = false;
        bool touching_ground = false;
        // This oscillates so that the player jumps a bit above the surface
        bool in_liquid = false;
        // This is more stable and defines the maximum speed of the player
        bool in_liquid_stable = false;
-       // Gets the viscosity of water to calculate friction
-       u8 liquid_viscosity = 0;
+       // Slows down the player when moving through
+       u8 move_resistance = 0;
        bool is_climbing = false;
        bool swimming_vertical = false;
        bool swimming_pitch = false;
@@ -72,8 +70,6 @@ class LocalPlayer : public Player
        // Temporary option for old move code
        bool physics_override_new_move = true;
 
-       v3f overridePosition;
-
        void move(f32 dtime, Environment *env, f32 pos_max_d);
        void move(f32 dtime, Environment *env, f32 pos_max_d,
                        std::vector<CollisionInfo> *collision_info);
@@ -91,7 +87,7 @@ class LocalPlayer : public Player
        v3f last_speed;
        float last_pitch = 0.0f;
        float last_yaw = 0.0f;
-       unsigned int last_keyPressed = 0;
+       u32 last_keyPressed = 0;
        u8 last_camera_fov = 0;
        u8 last_wanted_range = 0;
 
@@ -100,7 +96,7 @@ class LocalPlayer : public Player
        bool makes_footstep_sound = true;
 
        int last_animation = NO_ANIM;
-       float last_animation_speed;
+       float last_animation_speed = 0.0f;
 
        std::string hotbar_image = "";
        std::string hotbar_selected_image = "";
@@ -112,6 +108,8 @@ class LocalPlayer : public Player
 
        GenericCAO *getCAO() const { return m_cao; }
 
+       ClientActiveObject *getParent() const;
+
        void setCAO(GenericCAO *toset)
        {
                assert(!m_cao); // Pre-condition
@@ -138,31 +136,40 @@ class LocalPlayer : public Player
        }
 
        v3f getPosition() const { return m_position; }
+
+       // Non-transformed eye offset getters
+       // For accurate positions, use the Camera functions
        v3f getEyePosition() const { return m_position + getEyeOffset(); }
        v3f getEyeOffset() const;
        void setEyeHeight(float eye_height) { m_eye_height = eye_height; }
 
        void setCollisionbox(const aabb3f &box) { m_collisionbox = box; }
 
+       const aabb3f& getCollisionbox() const { return m_collisionbox; }
+
        float getZoomFOV() const { return m_zoom_fov; }
        void setZoomFOV(float zoom_fov) { m_zoom_fov = zoom_fov; }
 
        bool getAutojump() const { return m_autojump; }
 
+       bool isDead() const;
+
        inline void addVelocity(const v3f &vel)
        {
                added_velocity += vel;
        }
 
+       inline Lighting& getLighting() { return m_lighting; }
+
 private:
        void accelerate(const v3f &target_speed, const f32 max_increase_H,
-                       const f32 max_increase_V, const bool use_pitch);
+               const f32 max_increase_V, const bool use_pitch);
        bool updateSneakNode(Map *map, const v3f &position, const v3f &sneak_max);
        float getSlipFactor(Environment *env, const v3f &speedH);
        void handleAutojump(f32 dtime, Environment *env,
-                       const collisionMoveResult &result,
-                       const v3f &position_before_move, const v3f &speed_before_move,
-                       f32 pos_max_d);
+               const collisionMoveResult &result,
+               const v3f &position_before_move, const v3f &speed_before_move,
+               f32 pos_max_d);
 
        v3f m_position;
        v3s16 m_standing_node;
@@ -194,13 +201,16 @@ class LocalPlayer : public Player
        f32 m_pitch = 0.0f;
        bool camera_barely_in_ceiling = false;
        aabb3f m_collisionbox = aabb3f(-BS * 0.30f, 0.0f, -BS * 0.30f, BS * 0.30f,
-                       BS * 1.75f, BS * 0.30f);
+               BS * 1.75f, BS * 0.30f);
        float m_eye_height = 1.625f;
        float m_zoom_fov = 0.0f;
        bool m_autojump = false;
        float m_autojump_time = 0.0f;
-       v3f added_velocity = v3f(0.0f, 0.0f, 0.0f); // cleared on each move()
+
+       v3f added_velocity = v3f(0.0f); // cleared on each move()
+       // TODO: Rename to adhere to convention: added_velocity --> m_added_velocity
 
        GenericCAO *m_cao = nullptr;
        Client *m_client;
+       Lighting m_lighting;
 };