]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/player.cpp
Add screenshots to online content browser
[dragonfireclient.git] / src / player.cpp
index fa82a79f43b70cc60cde80eac33bb27a78c2ee53..c7036663a63af13e35e19686989574a35ffc47a8 100644 (file)
@@ -30,23 +30,13 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 
 
 Player::Player(const char *name, IItemDefManager *idef):
-       camera_barely_in_ceiling(false),
-       inventory(idef),
-       hp(PLAYER_MAX_HP),
-       peer_id(PEER_ID_INEXISTENT),
-       keyPressed(0),
-// protected
-       m_breath(PLAYER_MAX_BREATH),
-       m_pitch(0),
-       m_yaw(0),
-       m_speed(0,0,0),
-       m_position(0,0,0),
-       m_collisionbox(-BS*0.30,0.0,-BS*0.30,BS*0.30,BS*1.75,BS*0.30)
+       inventory(idef)
 {
        strlcpy(m_name, name, PLAYERNAME_SIZE);
 
        inventory.clear();
        inventory.addList("main", PLAYER_INVENTORY_SIZE);
+       inventory.addList("hand", 1);
        InventoryList *craft = inventory.addList("craft", 9);
        craft->setWidth(3);
        inventory.addList("craftpreview", 1);
@@ -80,9 +70,24 @@ Player::Player(const char *name, IItemDefManager *idef):
        hud_flags =
                HUD_FLAG_HOTBAR_VISIBLE    | HUD_FLAG_HEALTHBAR_VISIBLE |
                HUD_FLAG_CROSSHAIR_VISIBLE | HUD_FLAG_WIELDITEM_VISIBLE |
-               HUD_FLAG_BREATHBAR_VISIBLE | HUD_FLAG_MINIMAP_VISIBLE;
+               HUD_FLAG_BREATHBAR_VISIBLE | HUD_FLAG_MINIMAP_VISIBLE   |
+               HUD_FLAG_MINIMAP_RADAR_VISIBLE;
 
        hud_hotbar_itemcount = HUD_HOTBAR_ITEMCOUNT_DEFAULT;
+
+       m_player_settings.readGlobalSettings();
+       g_settings->registerChangedCallback("free_move", &Player::settingsChangedCallback,
+                       &m_player_settings);
+       g_settings->registerChangedCallback("fast_move", &Player::settingsChangedCallback,
+                       &m_player_settings);
+       g_settings->registerChangedCallback("continuous_forward",
+                       &Player::settingsChangedCallback, &m_player_settings);
+       g_settings->registerChangedCallback("always_fly_fast",
+                       &Player::settingsChangedCallback, &m_player_settings);
+       g_settings->registerChangedCallback("aux1_descends",
+                       &Player::settingsChangedCallback, &m_player_settings);
+       g_settings->registerChangedCallback(
+                       "noclip", &Player::settingsChangedCallback, &m_player_settings);
 }
 
 Player::~Player()
@@ -90,11 +95,6 @@ Player::~Player()
        clearHud();
 }
 
-v3s16 Player::getLightPosition() const
-{
-       return floatToInt(m_position + v3f(0,BS+BS/2,0), BS);
-}
-
 u32 Player::addHud(HudElement *toadd)
 {
        MutexAutoLock lock(m_mutex);
@@ -140,3 +140,18 @@ void Player::clearHud()
                hud.pop_back();
        }
 }
+
+void PlayerSettings::readGlobalSettings()
+{
+       free_move = g_settings->getBool("free_move");
+       fast_move = g_settings->getBool("fast_move");
+       continuous_forward = g_settings->getBool("continuous_forward");
+       always_fly_fast = g_settings->getBool("always_fly_fast");
+       aux1_descends = g_settings->getBool("aux1_descends");
+       noclip = g_settings->getBool("noclip");
+}
+
+void Player::settingsChangedCallback(const std::string &name, void *data)
+{
+       ((PlayerSettings *)data)->readGlobalSettings();
+}