diff options
author | TeTpaAka <TeTpaAka@users.noreply.github.com> | 2015-06-25 13:06:49 +0200 |
---|---|---|
committer | paramat <mat.gregory@virginmedia.com> | 2016-11-26 03:49:30 +0000 |
commit | 785a9a6c1af424b0a46f334de7176c9e67341cfb (patch) | |
tree | f0b33e1c47e65800beacae8d6c905c8a02307674 /src/game.cpp | |
parent | e4ee6548afd01040046ee3780d0fbb121d141251 (diff) | |
download | minetest-785a9a6c1af424b0a46f334de7176c9e67341cfb.tar.gz minetest-785a9a6c1af424b0a46f334de7176c9e67341cfb.tar.bz2 minetest-785a9a6c1af424b0a46f334de7176c9e67341cfb.zip |
Wieldhand: Allow overriding the hand
Diffstat (limited to 'src/game.cpp')
-rw-r--r-- | src/game.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/game.cpp b/src/game.cpp index 671682348..e6d38d0a0 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -3684,6 +3684,12 @@ void Game::updateCamera(VolatileRunFlags *flags, u32 busy_time, if (mlist && client->getPlayerItem() < mlist->getSize()) playeritem = mlist->getItem(client->getPlayerItem()); } + if (playeritem.getDefinition(itemdef_manager).name.empty()) { // override the hand + InventoryList *hlist = local_inventory->getList("hand"); + if (hlist) + playeritem = hlist->getItem(0); + } + ToolCapabilities playeritem_toolcap = playeritem.getToolCapabilities(itemdef_manager); @@ -3768,6 +3774,11 @@ void Game::processPlayerInteraction(GameRunData *runData, playeritem = mlist->getItem(client->getPlayerItem()); } + if (playeritem.getDefinition(itemdef_manager).name.empty()) { // override the hand + InventoryList *hlist = local_inventory->getList("hand"); + if (hlist) + playeritem = hlist->getItem(0); + } const ItemDefinition &playeritem_def = playeritem.getDefinition(itemdef_manager); @@ -4321,8 +4332,14 @@ void Game::updateFrame(ProfilerGraph *graph, RunStats *stats, if (mlist && (client->getPlayerItem() < mlist->getSize())) { ItemStack item = mlist->getItem(client->getPlayerItem()); + if (item.getDefinition(itemdef_manager).name.empty()) { // override the hand + InventoryList *hlist = local_inventory->getList("hand"); + if (hlist) + item = hlist->getItem(0); + } camera->wield(item); } + runData->update_wielded_item_trigger = false; } |