Translated using Weblate (Chinese (Simplified))
[oweals/minetest.git] / src / player.cpp
index 4b104a71b924c65082de297a827807b7d47df4f9..d3ba5c2c20e9944e531f14506e289d81fd0f7dde 100644 (file)
@@ -90,6 +90,29 @@ Player::~Player()
        clearHud();
 }
 
+void Player::setWieldIndex(u16 index)
+{
+       const InventoryList *mlist = inventory.getList("main");
+       m_wield_index = MYMIN(index, mlist ? mlist->getSize() : 0);
+}
+
+ItemStack &Player::getWieldedItem(ItemStack *selected, ItemStack *hand) const
+{
+       assert(selected);
+
+       const InventoryList *mlist = inventory.getList("main"); // TODO: Make this generic
+       const InventoryList *hlist = inventory.getList("hand");
+
+       if (mlist && m_wield_index < mlist->getSize())
+               *selected = mlist->getItem(m_wield_index);
+
+       if (hand && hlist)
+               *hand = hlist->getItem(0);
+
+       // Return effective tool item
+       return (hand && selected->name.empty()) ? *hand : *selected;
+}
+
 u32 Player::addHud(HudElement *toadd)
 {
        MutexAutoLock lock(m_mutex);
@@ -139,6 +162,7 @@ void Player::clearHud()
 void PlayerSettings::readGlobalSettings()
 {
        free_move = g_settings->getBool("free_move");
+       pitch_move = g_settings->getBool("pitch_move");
        fast_move = g_settings->getBool("fast_move");
        continuous_forward = g_settings->getBool("continuous_forward");
        always_fly_fast = g_settings->getBool("always_fly_fast");