X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Flocalplayer.h;h=40a7f089edf6ab1112a96ba9452d7e507b7b11ad;hb=ad5ac39d8d1a8b8f6f0fe077e20bac914ddc624b;hp=17434d37910e2103b377afd61e47317651a1a2bc;hpb=8800896824d609c754eee38d3720a112f4216e57;p=oweals%2Fminetest.git diff --git a/src/localplayer.h b/src/localplayer.h index 17434d379..40a7f089e 100644 --- a/src/localplayer.h +++ b/src/localplayer.h @@ -23,12 +23,16 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "player.h" #include -class ClientEnvironment; +class Environment; +class GenericCAO; +class ClientActiveObject; + +enum LocalPlayerAnimations {NO_ANIM, WALK_ANIM, DIG_ANIM, WD_ANIM}; // no local animation, walking, digging, both class LocalPlayer : public Player { public: - LocalPlayer(IGameDef *gamedef); + LocalPlayer(IGameDef *gamedef, const char *name); virtual ~LocalPlayer(); bool isLocal() const @@ -36,13 +40,15 @@ public: return true; } + ClientActiveObject *parent; + bool isAttached; v3f overridePosition; - void move(f32 dtime, ClientEnvironment *env, f32 pos_max_d, - std::list *collision_info); - void move(f32 dtime, ClientEnvironment *env, f32 pos_max_d); + void move(f32 dtime, Environment *env, f32 pos_max_d); + void move(f32 dtime, Environment *env, f32 pos_max_d, + std::vector *collision_info); void applyControl(float dtime); @@ -55,18 +61,42 @@ public: float last_yaw; unsigned int last_keyPressed; + float camera_impact; + + int last_animation; + float last_animation_speed; + + std::string hotbar_image; + std::string hotbar_selected_image; + + video::SColor light_color; + + GenericCAO* getCAO() const { + return m_cao; + } + + void setCAO(GenericCAO* toset) { + assert( m_cao == NULL ); // Pre-condition + m_cao = toset; + } + private: // This is used for determining the sneaking range v3s16 m_sneak_node; // Whether the player is allowed to sneak bool m_sneak_node_exists; + // Whether recalculation of the sneak node is needed + bool m_need_to_get_new_sneak_node; + // Stores the max player uplift by m_sneak_node and is updated + // when m_need_to_get_new_sneak_node == true + f32 m_sneak_node_bb_ymax; // Node below player, used to determine whether it has been removed, // and its old type v3s16 m_old_node_below; std::string m_old_node_below_type; - // Whether recalculation of the sneak node is needed - bool m_need_to_get_new_sneak_node; bool m_can_jump; + + GenericCAO* m_cao; }; #endif