mirror of https://github.com/minetest/minetest.git
Add keybind to swap items between hands
This commit is contained in:
parent
9e45cc0fd9
commit
a71d47edb6
|
@ -2401,6 +2401,10 @@ keymap_screenshot (Screenshot) key KEY_F12
|
|||
# Key for dropping the currently selected item.
|
||||
keymap_drop (Drop item key) key KEY_KEY_Q
|
||||
|
||||
# Key for swapping items between main hand and offhand.
|
||||
# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3
|
||||
keymap_swap_offhand (Swap hand items) key KEY_KEY_F
|
||||
|
||||
# Key to use view zoom when possible.
|
||||
keymap_zoom (View zoom key) key KEY_KEY_Z
|
||||
|
||||
|
|
|
@ -727,6 +727,7 @@ protected:
|
|||
void processItemSelection(u16 *new_playeritem);
|
||||
|
||||
void dropSelectedItem(bool single_item = false);
|
||||
void swapOffhand();
|
||||
void openInventory();
|
||||
void openConsole(float scale, const wchar_t *line=NULL);
|
||||
void toggleFreeMove();
|
||||
|
@ -2037,6 +2038,8 @@ void Game::processKeyInput()
|
|||
{
|
||||
if (wasKeyDown(KeyType::DROP)) {
|
||||
dropSelectedItem(isKeyDown(KeyType::SNEAK));
|
||||
} else if (wasKeyDown(KeyType::SWAP_OFFHAND)) {
|
||||
swapOffhand();
|
||||
} else if (wasKeyDown(KeyType::AUTOFORWARD)) {
|
||||
toggleAutoforward();
|
||||
} else if (wasKeyDown(KeyType::BACKWARD)) {
|
||||
|
@ -2216,6 +2219,34 @@ void Game::dropSelectedItem(bool single_item)
|
|||
}
|
||||
|
||||
|
||||
void Game::swapOffhand()
|
||||
{
|
||||
|
||||
IMoveAction *a = new IMoveAction();
|
||||
a->count = 0;
|
||||
a->from_inv.setCurrentPlayer();
|
||||
a->from_list = "main";
|
||||
a->from_i = client->getEnv().getLocalPlayer()->getWieldIndex();
|
||||
a->to_inv.setCurrentPlayer();
|
||||
a->to_list = "offhand";
|
||||
a->to_i = 0;
|
||||
|
||||
ItemStack selected;
|
||||
client->getEnv().getLocalPlayer()->getWieldedItem(&selected, nullptr);
|
||||
|
||||
if (selected.name == "") {
|
||||
auto tmp_list = a->from_list;
|
||||
auto tmp_i = a->from_i;
|
||||
a->from_list = a->to_list;
|
||||
a->from_i = a->to_i;
|
||||
a->to_list = tmp_list;
|
||||
a->to_i = tmp_i;
|
||||
}
|
||||
|
||||
client->inventoryAction(a);
|
||||
}
|
||||
|
||||
|
||||
void Game::openInventory()
|
||||
{
|
||||
/*
|
||||
|
@ -4200,6 +4231,14 @@ void Game::updateFrame(ProfilerGraph *graph, RunStats *stats, f32 dtime,
|
|||
runData.damage_flash -= 384.0f * dtime;
|
||||
}
|
||||
|
||||
/*
|
||||
==================== End scene ====================
|
||||
*/
|
||||
|
||||
driver->endScene();
|
||||
|
||||
stats->drawtime = tt_draw.stop(true);
|
||||
g_profiler->graphAdd("Draw scene [us]", stats->drawtime);
|
||||
g_profiler->avg("Game::updateFrame(): update frame [ms]", tt_update.stop(true));
|
||||
}
|
||||
|
||||
|
|
|
@ -44,6 +44,7 @@ void KeyCache::populate()
|
|||
key[KeyType::AUTOFORWARD] = getKeySetting("keymap_autoforward");
|
||||
|
||||
key[KeyType::DROP] = getKeySetting("keymap_drop");
|
||||
key[KeyType::SWAP_OFFHAND] = getKeySetting("keymap_swap_offhand");
|
||||
key[KeyType::INVENTORY] = getKeySetting("keymap_inventory");
|
||||
key[KeyType::CHAT] = getKeySetting("keymap_chat");
|
||||
key[KeyType::CMD] = getKeySetting("keymap_cmd");
|
||||
|
|
|
@ -42,6 +42,7 @@ public:
|
|||
|
||||
// Other
|
||||
DROP,
|
||||
SWAP_OFFHAND,
|
||||
INVENTORY,
|
||||
CHAT,
|
||||
CMD,
|
||||
|
|
|
@ -86,6 +86,7 @@ void set_default_settings()
|
|||
settings->setDefault("keymap_dig", "KEY_LBUTTON");
|
||||
settings->setDefault("keymap_place", "KEY_RBUTTON");
|
||||
settings->setDefault("keymap_drop", "KEY_KEY_Q");
|
||||
settings->setDefault("keymap_swap_offhand", "KEY_KEY_F");
|
||||
settings->setDefault("keymap_zoom", "KEY_KEY_Z");
|
||||
settings->setDefault("keymap_inventory", "KEY_KEY_I");
|
||||
settings->setDefault("keymap_aux1", "KEY_KEY_E");
|
||||
|
|
|
@ -58,6 +58,7 @@ enum
|
|||
GUI_ID_KEY_CONSOLE_BUTTON,
|
||||
GUI_ID_KEY_SNEAK_BUTTON,
|
||||
GUI_ID_KEY_DROP_BUTTON,
|
||||
GUI_ID_KEY_SWAP_OFFHAND_BUTTON,
|
||||
GUI_ID_KEY_INVENTORY_BUTTON,
|
||||
GUI_ID_KEY_HOTBAR_PREV_BUTTON,
|
||||
GUI_ID_KEY_HOTBAR_NEXT_BUTTON,
|
||||
|
@ -391,6 +392,7 @@ void GUIKeyChangeMenu::init_keys()
|
|||
this->add_key(GUI_ID_KEY_JUMP_BUTTON, wstrgettext("Jump"), "keymap_jump");
|
||||
this->add_key(GUI_ID_KEY_SNEAK_BUTTON, wstrgettext("Sneak"), "keymap_sneak");
|
||||
this->add_key(GUI_ID_KEY_DROP_BUTTON, wstrgettext("Drop"), "keymap_drop");
|
||||
this->add_key(GUI_ID_KEY_SWAP_OFFHAND_BUTTON, wstrgettext("Swap hand items"), "keymap_swap_offhand");
|
||||
this->add_key(GUI_ID_KEY_INVENTORY_BUTTON, wstrgettext("Inventory"), "keymap_inventory");
|
||||
this->add_key(GUI_ID_KEY_HOTBAR_PREV_BUTTON, wstrgettext("Prev. item"), "keymap_hotbar_previous");
|
||||
this->add_key(GUI_ID_KEY_HOTBAR_NEXT_BUTTON, wstrgettext("Next item"), "keymap_hotbar_next");
|
||||
|
|
Loading…
Reference in New Issue