X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Fplayer.h;h=9a6ad93bfacad954121dda8964f27c749cdf8cc7;hb=42134bb49eaa5116838a2c188c432c8b9420dff8;hp=a7a2433ce3d52f10f461c7d349f921958d703e46;hpb=f37a3a84fafb91bcfc109fed95aa6d42726f1bf7;p=dragonfireclient.git diff --git a/src/player.h b/src/player.h index a7a2433ce..9a6ad93bf 100644 --- a/src/player.h +++ b/src/player.h @@ -62,7 +62,20 @@ class Player return m_position; } - virtual void setPosition(v3f position) + v3s16 getLightPosition() const + { + return floatToInt(m_position + v3f(0,BS+BS/2,0), BS); + } + + v3f getEyePosition() + { + // This is at the height of the eyes of the current figure + // return m_position + v3f(0, BS+BS/2, 0); + // This is more like in minecraft + return m_position + v3f(0,BS+(5*BS)/8,0); + } + + virtual void setPosition(const v3f &position) { m_position = position; } @@ -92,6 +105,15 @@ class Player snprintf(m_name, PLAYERNAME_SIZE, "%s", name); } + virtual void wieldItem(u16 item); + virtual const InventoryItem *getWieldItem() const + { + const InventoryList *list = inventory.getList("main"); + if (list) + return list->getItem(m_selected_item); + return NULL; + } + const char * getName() { return m_name; @@ -118,9 +140,12 @@ class Player bool in_water; // This is more stable and defines the maximum speed of the player bool in_water_stable; + bool is_climbing; bool swimming_up; Inventory inventory; + // Actual inventory is backed up here when creative mode is used + Inventory *inventory_backup; bool craftresult_is_preview; @@ -130,6 +155,7 @@ class Player protected: char m_name[PLAYERNAME_SIZE]; + u16 m_selected_item; f32 m_pitch; f32 m_yaw; v3f m_speed; @@ -203,7 +229,7 @@ class RemotePlayer : public Player, public scene::ISceneNode return m_box; } - void setPosition(v3f position) + void setPosition(const v3f &position) { m_oldpos = m_showpos;