From c2aca6d9e9a2dbd8bab74177cd3913aad89484ff Mon Sep 17 00:00:00 2001 From: Alezito2008 Date: Sun, 8 Mar 2026 05:17:46 -0300 Subject: [PATCH 1/5] Implement middle click pick block --- Minecraft.Client/Minecraft.cpp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/Minecraft.Client/Minecraft.cpp b/Minecraft.Client/Minecraft.cpp index 46e8497a1..fe283d317 100644 --- a/Minecraft.Client/Minecraft.cpp +++ b/Minecraft.Client/Minecraft.cpp @@ -1479,6 +1479,30 @@ void Minecraft::run_middle() if(g_KBMInput.IsMouseButtonPressed(KeyboardMouseInput::MOUSE_RIGHT)) localplayers[i]->ullButtonsPressed|=1LL<hasInfiniteItems() && hitResult && hitResult->type == HitResult::TILE) + { + int x = hitResult->x, y = hitResult->y, z = hitResult->z; + + int tileId = level->getTile(x, y, z); + + if (tileId > 0 && tileId < Tile::TILE_NUM_COUNT) + { + Tile *tile = Tile::tiles[tileId]; + + int clonedTileId = tile->cloneTileId(level, x, y, z); + int clonedTileData = tile->cloneTileData(level, x, y, z); + + localplayers[i]->inventory->grabTexture(clonedTileId, clonedTileData, true, true); + + shared_ptr selectedItem = localplayers[i]->inventory->getSelected(); + if (gameMode && selectedItem) + { + // Hotbar starts at slot 36 + gameMode->handleCreativeModeItemAdd(selectedItem, 36 + player->inventory->selected); + } + } + } + if(g_KBMInput.IsKeyPressed(KeyboardMouseInput::KEY_INVENTORY)) { if(ui.IsSceneInStack(i, eUIScene_InventoryMenu)) From 9a5a6d64239034e0f03dab9847959b55c5f3c44f Mon Sep 17 00:00:00 2001 From: Alezito2008 Date: Sun, 8 Mar 2026 05:37:12 -0300 Subject: [PATCH 2/5] Update README --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 122157ba8..be06a09d8 100644 --- a/README.md +++ b/README.md @@ -87,6 +87,7 @@ Minecraft.Client.exe -name Steve -fullscreen - **Attack / Destroy**: `Left Click` - **Use / Place**: `Right Click` - **Select Item**: `Mouse Wheel` or keys `1` to `9` +- **Pick Block**: `Middle Click` - **Accept or Decline Tutorial hints**: `Enter` to accept and `B` to decline - **Game Info (Player list and Host Options)**: `TAB` - **Toggle HUD**: `F1` From 5170b968b8285ff73c8e937e5e45d8d61d5b8d0e Mon Sep 17 00:00:00 2001 From: Alezito2008 Date: Sun, 8 Mar 2026 15:10:49 -0300 Subject: [PATCH 3/5] Implement inventory swapping --- Minecraft.Client/Minecraft.cpp | 67 +++++++++++++++++++++++++++++++--- Minecraft.World/Inventory.h | 2 - 2 files changed, 61 insertions(+), 8 deletions(-) diff --git a/Minecraft.Client/Minecraft.cpp b/Minecraft.Client/Minecraft.cpp index fe283d317..f41dbf566 100644 --- a/Minecraft.Client/Minecraft.cpp +++ b/Minecraft.Client/Minecraft.cpp @@ -1479,10 +1479,15 @@ void Minecraft::run_middle() if(g_KBMInput.IsMouseButtonPressed(KeyboardMouseInput::MOUSE_RIGHT)) localplayers[i]->ullButtonsPressed|=1LL<hasInfiniteItems() && hitResult && hitResult->type == HitResult::TILE) + if (g_KBMInput.IsMouseButtonPressed(KeyboardMouseInput::MOUSE_MIDDLE) && hitResult && hitResult->type == HitResult::TILE) { + auto inventory = localplayers[i]->inventory; + auto inventoryMenu = localplayers[i]->inventoryMenu; + bool isInCreative = gameMode->hasInfiniteItems(); + int x = hitResult->x, y = hitResult->y, z = hitResult->z; + int containerId = inventoryMenu->containerId; int tileId = level->getTile(x, y, z); if (tileId > 0 && tileId < Tile::TILE_NUM_COUNT) @@ -1492,13 +1497,63 @@ void Minecraft::run_middle() int clonedTileId = tile->cloneTileId(level, x, y, z); int clonedTileData = tile->cloneTileData(level, x, y, z); - localplayers[i]->inventory->grabTexture(clonedTileId, clonedTileData, true, true); + int itemSlot = inventory->getSlot(clonedTileId, clonedTileData); + int firstEmpty = inventory->getFreeSlot(); - shared_ptr selectedItem = localplayers[i]->inventory->getSelected(); - if (gameMode && selectedItem) + if (itemSlot >= 0) { - // Hotbar starts at slot 36 - gameMode->handleCreativeModeItemAdd(selectedItem, 36 + player->inventory->selected); + // Item is already in hotbar + if (itemSlot < 9) + { + inventory->selected = itemSlot; + } + // There are free slots in the hotbar + else if (firstEmpty >= 0 && firstEmpty < 9) + { + inventory->selected = firstEmpty; + // Use quick move the item + gameMode->handleInventoryMouseClick( + containerId, + itemSlot, + AbstractContainerMenu::CLICK_QUICK_MOVE, + true, + localplayers[i] + ); + } + // Swap with item in inventory + else { + int currentHotbarSlot = inventory->selected; + short changeUid = inventoryMenu->backup(inventory); + + // Perform client side swap and sync with server using CLICK_SWAP to avoid ghost blocks + shared_ptr clicked = inventoryMenu->clicked( + itemSlot, + currentHotbarSlot, + AbstractContainerMenu::CLICK_SWAP, + localplayers[i] + ); + + localplayers[i]->connection->send(make_shared( + containerId, + itemSlot, + currentHotbarSlot, + AbstractContainerMenu::CLICK_SWAP, + clicked, + changeUid + )); + } + } + else if (isInCreative) + { + localplayers[i]->inventory->grabTexture(clonedTileId, clonedTileData, true, true); + + shared_ptr selectedItem = localplayers[i]->inventory->getSelected(); + if (gameMode && selectedItem) + { + // Hotbar starts at slot 36 + // Sync new item instance with the server in creative mode + gameMode->handleCreativeModeItemAdd(selectedItem, 36 + localplayers[i]->inventory->selected); + } } } } diff --git a/Minecraft.World/Inventory.h b/Minecraft.World/Inventory.h index 539b9f493..95db50516 100644 --- a/Minecraft.World/Inventory.h +++ b/Minecraft.World/Inventory.h @@ -39,13 +39,11 @@ public: bool IsHeldItem(); static int getSelectionSize(); -private: int getSlot(int tileId); int getSlot(int tileId, int data); int getSlotWithRemainingSpace(shared_ptr item); -public: int getFreeSlot(); void grabTexture(int id, int data, bool checkData, bool mayReplace); void swapPaint(int wheel); From 8cbc7606ac29b9701d5b377e6e744ec964be6a69 Mon Sep 17 00:00:00 2001 From: Alezito2008 Date: Sun, 8 Mar 2026 15:36:49 -0300 Subject: [PATCH 4/5] Refactor pick block to use a dedicated MINECRAFT_ACTION and move logic to tick --- Minecraft.Client/Common/App_enums.h | 1 + Minecraft.Client/Minecraft.cpp | 157 ++++++++++++++-------------- 2 files changed, 82 insertions(+), 76 deletions(-) diff --git a/Minecraft.Client/Common/App_enums.h b/Minecraft.Client/Common/App_enums.h index 15a179787..bcfb5f2e4 100644 --- a/Minecraft.Client/Common/App_enums.h +++ b/Minecraft.Client/Common/App_enums.h @@ -862,6 +862,7 @@ enum EControllerActions MINECRAFT_ACTION_INVENTORY, MINECRAFT_ACTION_PAUSEMENU, MINECRAFT_ACTION_DROP, + MINECRAFT_ACTION_PICK_ITEM, MINECRAFT_ACTION_SNEAK_TOGGLE, MINECRAFT_ACTION_CRAFTING, MINECRAFT_ACTION_RENDER_THIRD_PERSON, diff --git a/Minecraft.Client/Minecraft.cpp b/Minecraft.Client/Minecraft.cpp index f41dbf566..a3c9fe2f0 100644 --- a/Minecraft.Client/Minecraft.cpp +++ b/Minecraft.Client/Minecraft.cpp @@ -1479,83 +1479,9 @@ void Minecraft::run_middle() if(g_KBMInput.IsMouseButtonPressed(KeyboardMouseInput::MOUSE_RIGHT)) localplayers[i]->ullButtonsPressed|=1LL<type == HitResult::TILE) + if (g_KBMInput.IsMouseButtonPressed(KeyboardMouseInput::MOUSE_MIDDLE)) { - auto inventory = localplayers[i]->inventory; - auto inventoryMenu = localplayers[i]->inventoryMenu; - bool isInCreative = gameMode->hasInfiniteItems(); - - int x = hitResult->x, y = hitResult->y, z = hitResult->z; - - int containerId = inventoryMenu->containerId; - int tileId = level->getTile(x, y, z); - - if (tileId > 0 && tileId < Tile::TILE_NUM_COUNT) - { - Tile *tile = Tile::tiles[tileId]; - - int clonedTileId = tile->cloneTileId(level, x, y, z); - int clonedTileData = tile->cloneTileData(level, x, y, z); - - int itemSlot = inventory->getSlot(clonedTileId, clonedTileData); - int firstEmpty = inventory->getFreeSlot(); - - if (itemSlot >= 0) - { - // Item is already in hotbar - if (itemSlot < 9) - { - inventory->selected = itemSlot; - } - // There are free slots in the hotbar - else if (firstEmpty >= 0 && firstEmpty < 9) - { - inventory->selected = firstEmpty; - // Use quick move the item - gameMode->handleInventoryMouseClick( - containerId, - itemSlot, - AbstractContainerMenu::CLICK_QUICK_MOVE, - true, - localplayers[i] - ); - } - // Swap with item in inventory - else { - int currentHotbarSlot = inventory->selected; - short changeUid = inventoryMenu->backup(inventory); - - // Perform client side swap and sync with server using CLICK_SWAP to avoid ghost blocks - shared_ptr clicked = inventoryMenu->clicked( - itemSlot, - currentHotbarSlot, - AbstractContainerMenu::CLICK_SWAP, - localplayers[i] - ); - - localplayers[i]->connection->send(make_shared( - containerId, - itemSlot, - currentHotbarSlot, - AbstractContainerMenu::CLICK_SWAP, - clicked, - changeUid - )); - } - } - else if (isInCreative) - { - localplayers[i]->inventory->grabTexture(clonedTileId, clonedTileData, true, true); - - shared_ptr selectedItem = localplayers[i]->inventory->getSelected(); - if (gameMode && selectedItem) - { - // Hotbar starts at slot 36 - // Sync new item instance with the server in creative mode - gameMode->handleCreativeModeItemAdd(selectedItem, 36 + localplayers[i]->inventory->selected); - } - } - } + localplayers[i]->ullButtonsPressed|=1LL<ullButtonsPressed&(1LL<GetCount() <= 1) ) ui.SetSelectedItem( iPad, itemName ); } + + if (player->ullButtonsPressed&(1LL<type == HitResult::TILE) + { + auto inventory = player->inventory; + auto inventoryMenu = player->inventoryMenu; + bool isInCreative = gameMode->hasInfiniteItems(); + + int x = hitResult->x, y = hitResult->y, z = hitResult->z; + + int containerId = inventoryMenu->containerId; + int tileId = level->getTile(x, y, z); + + if (tileId > 0 && tileId < Tile::TILE_NUM_COUNT) + { + Tile *tile = Tile::tiles[tileId]; + + int clonedTileId = tile->cloneTileId(level, x, y, z); + int clonedTileData = tile->cloneTileData(level, x, y, z); + + int itemSlot = inventory->getSlot(clonedTileId, clonedTileData); + int firstEmpty = inventory->getFreeSlot(); + + if (itemSlot >= 0) + { + // Item is already in hotbar + if (itemSlot < 9) + { + inventory->selected = itemSlot; + } + // There are free slots in the hotbar + else if (firstEmpty >= 0 && firstEmpty < 9) + { + inventory->selected = firstEmpty; + // Use quick move the item + gameMode->handleInventoryMouseClick( + containerId, + itemSlot, + AbstractContainerMenu::CLICK_QUICK_MOVE, + true, + player + ); + } + // Swap with item in inventory + else { + int currentHotbarSlot = inventory->selected; + short changeUid = inventoryMenu->backup(inventory); + + // Perform client side swap and sync with server using CLICK_SWAP to avoid ghost blocks + shared_ptr clicked = inventoryMenu->clicked( + itemSlot, + currentHotbarSlot, + AbstractContainerMenu::CLICK_SWAP, + player + ); + + player->connection->send(make_shared( + containerId, + itemSlot, + currentHotbarSlot, + AbstractContainerMenu::CLICK_SWAP, + clicked, + changeUid + )); + } + } + else if (isInCreative) + { + inventory->grabTexture(clonedTileId, clonedTileData, true, true); + + shared_ptr selectedItem = inventory->getSelected(); + if (gameMode && selectedItem) + { + // Hotbar starts at slot 36 + // Sync new item instance with the server in creative mode + gameMode->handleCreativeModeItemAdd(selectedItem, 36 + player->inventory->selected); + } + } + } + } } else { From 2cdedcff3f086136e64d91790cd40e941010b615 Mon Sep 17 00:00:00 2001 From: Alezito2008 Date: Sun, 8 Mar 2026 16:18:51 -0300 Subject: [PATCH 5/5] Add Pick Block support for controllers (D-Pad Down) across all platforms --- Minecraft.Client/Durango/Durango_Minecraft.cpp | 3 +++ Minecraft.Client/Minecraft.cpp | 1 + Minecraft.Client/Orbis/Orbis_Minecraft.cpp | 4 ++++ Minecraft.Client/PS3/PS3_Minecraft.cpp | 3 +++ Minecraft.Client/Windows64/Windows64_Minecraft.cpp | 3 +++ Minecraft.Client/Xbox/Xbox_Minecraft.cpp | 3 +++ 6 files changed, 17 insertions(+) diff --git a/Minecraft.Client/Durango/Durango_Minecraft.cpp b/Minecraft.Client/Durango/Durango_Minecraft.cpp index 7fdab1bef..78bb4f50e 100644 --- a/Minecraft.Client/Durango/Durango_Minecraft.cpp +++ b/Minecraft.Client/Durango/Durango_Minecraft.cpp @@ -121,6 +121,7 @@ void DefineActions(void) InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_INVENTORY, _360_JOY_BUTTON_Y); InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_PAUSEMENU, _360_JOY_BUTTON_START | _360_GTC_MENU); InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_DROP, _360_JOY_BUTTON_B); + InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_PICK_ITEM, _360_JOY_BUTTON_DPAD_DOWN); InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_SNEAK_TOGGLE, _360_JOY_BUTTON_RTHUMB); InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_CRAFTING, _360_JOY_BUTTON_X); InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_RENDER_THIRD_PERSON, _360_JOY_BUTTON_LTHUMB); @@ -173,6 +174,7 @@ void DefineActions(void) InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_INVENTORY, _360_JOY_BUTTON_Y); InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_PAUSEMENU, _360_JOY_BUTTON_START | _360_GTC_MENU); InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_DROP, _360_JOY_BUTTON_B); + InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_PICK_ITEM, _360_JOY_BUTTON_DPAD_DOWN); InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_SNEAK_TOGGLE, _360_JOY_BUTTON_LTHUMB); InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_CRAFTING, _360_JOY_BUTTON_X); InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_RENDER_THIRD_PERSON, _360_JOY_BUTTON_RTHUMB); @@ -224,6 +226,7 @@ void DefineActions(void) InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_INVENTORY, _360_JOY_BUTTON_Y); InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_PAUSEMENU, _360_JOY_BUTTON_START | _360_GTC_MENU); InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_DROP, _360_JOY_BUTTON_B); + InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_PICK_ITEM, _360_JOY_BUTTON_DPAD_DOWN); InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_SNEAK_TOGGLE, _360_JOY_BUTTON_LB); InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_CRAFTING, _360_JOY_BUTTON_X); InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_RENDER_THIRD_PERSON, _360_JOY_BUTTON_LTHUMB); diff --git a/Minecraft.Client/Minecraft.cpp b/Minecraft.Client/Minecraft.cpp index a3c9fe2f0..623a1459b 100644 --- a/Minecraft.Client/Minecraft.cpp +++ b/Minecraft.Client/Minecraft.cpp @@ -1454,6 +1454,7 @@ void Minecraft::run_middle() if(InputManager.ButtonPressed(i, ACTION_MENU_GTC_PAUSE)) localplayers[i]->ullButtonsPressed|=1LL<ullButtonsPressed|=1LL<ullButtonsPressed|=1LL<abilities.flying) diff --git a/Minecraft.Client/Orbis/Orbis_Minecraft.cpp b/Minecraft.Client/Orbis/Orbis_Minecraft.cpp index 20b9dd03f..1030ff769 100644 --- a/Minecraft.Client/Orbis/Orbis_Minecraft.cpp +++ b/Minecraft.Client/Orbis/Orbis_Minecraft.cpp @@ -134,6 +134,7 @@ void DefineActions(void) InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_INVENTORY, _PS4_JOY_BUTTON_TRIANGLE); InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_PAUSEMENU, _PS4_JOY_BUTTON_OPTIONS); InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_DROP, _PS4_JOY_BUTTON_O); + InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_PICK_ITEM, _PS4_JOY_BUTTON_DPAD_DOWN); InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_SNEAK_TOGGLE, _PS4_JOY_BUTTON_R3); InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_CRAFTING, _PS4_JOY_BUTTON_SQUARE); InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_RENDER_THIRD_PERSON, _PS4_JOY_BUTTON_L3); @@ -192,6 +193,7 @@ void DefineActions(void) InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_INVENTORY, _PS4_JOY_BUTTON_TRIANGLE); InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_PAUSEMENU, _PS4_JOY_BUTTON_OPTIONS); InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_DROP, _PS4_JOY_BUTTON_O); + InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_PICK_ITEM, _PS4_JOY_BUTTON_DPAD_DOWN); InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_SNEAK_TOGGLE, _PS4_JOY_BUTTON_L3); InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_CRAFTING, _PS4_JOY_BUTTON_SQUARE); InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_RENDER_THIRD_PERSON, _PS4_JOY_BUTTON_R3); @@ -249,6 +251,7 @@ void DefineActions(void) InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_INVENTORY, _PS4_JOY_BUTTON_TRIANGLE); InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_PAUSEMENU, _PS4_JOY_BUTTON_OPTIONS); InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_DROP, _PS4_JOY_BUTTON_O); + InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_PICK_ITEM, _PS4_JOY_BUTTON_DPAD_DOWN); InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_SNEAK_TOGGLE, _PS4_JOY_BUTTON_L1); InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_CRAFTING, _PS4_JOY_BUTTON_SQUARE); InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_RENDER_THIRD_PERSON, _PS4_JOY_BUTTON_L3); @@ -305,6 +308,7 @@ void DefineActions(void) InputManager.SetGameJoypadMaps(MAP_STYLE_3,MINECRAFT_ACTION_INVENTORY, _PS4_JOY_BUTTON_TRIANGLE); InputManager.SetGameJoypadMaps(MAP_STYLE_3,MINECRAFT_ACTION_PAUSEMENU, _PS4_JOY_BUTTON_OPTIONS); InputManager.SetGameJoypadMaps(MAP_STYLE_3,MINECRAFT_ACTION_DROP, _PS4_JOY_BUTTON_O); + InputManager.SetGameJoypadMaps(MAP_STYLE_3,MINECRAFT_ACTION_PICK_ITEM, _PS4_JOY_BUTTON_DPAD_DOWN); InputManager.SetGameJoypadMaps(MAP_STYLE_3,MINECRAFT_ACTION_CRAFTING, _PS4_JOY_BUTTON_SQUARE); InputManager.SetGameJoypadMaps(MAP_STYLE_3,MINECRAFT_ACTION_GAME_INFO, _PS4_JOY_BUTTON_TOUCHPAD); diff --git a/Minecraft.Client/PS3/PS3_Minecraft.cpp b/Minecraft.Client/PS3/PS3_Minecraft.cpp index 82dd7c508..0ddf48514 100644 --- a/Minecraft.Client/PS3/PS3_Minecraft.cpp +++ b/Minecraft.Client/PS3/PS3_Minecraft.cpp @@ -213,6 +213,7 @@ void DefineActions(void) InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_INVENTORY, _360_JOY_BUTTON_Y); InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_PAUSEMENU, _360_JOY_BUTTON_START); InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_DROP, _360_JOY_BUTTON_B); + InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_PICK_ITEM, _360_JOY_BUTTON_DPAD_DOWN); InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_SNEAK_TOGGLE, _360_JOY_BUTTON_RTHUMB); InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_CRAFTING, _360_JOY_BUTTON_X); InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_RENDER_THIRD_PERSON, _360_JOY_BUTTON_LTHUMB); @@ -272,6 +273,7 @@ void DefineActions(void) InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_INVENTORY, _360_JOY_BUTTON_Y); InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_PAUSEMENU, _360_JOY_BUTTON_START); InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_DROP, _360_JOY_BUTTON_B); + InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_PICK_ITEM, _360_JOY_BUTTON_DPAD_DOWN); InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_SNEAK_TOGGLE, _360_JOY_BUTTON_LTHUMB); InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_CRAFTING, _360_JOY_BUTTON_X); InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_RENDER_THIRD_PERSON, _360_JOY_BUTTON_RTHUMB); @@ -331,6 +333,7 @@ void DefineActions(void) InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_INVENTORY, _360_JOY_BUTTON_Y); InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_PAUSEMENU, _360_JOY_BUTTON_START); InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_DROP, _360_JOY_BUTTON_B); + InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_PICK_ITEM, _360_JOY_BUTTON_DPAD_DOWN); InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_SNEAK_TOGGLE, _360_JOY_BUTTON_LT); InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_CRAFTING, _360_JOY_BUTTON_X); InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_RENDER_THIRD_PERSON, _360_JOY_BUTTON_LTHUMB); diff --git a/Minecraft.Client/Windows64/Windows64_Minecraft.cpp b/Minecraft.Client/Windows64/Windows64_Minecraft.cpp index 678c8d623..a46d6cd1c 100644 --- a/Minecraft.Client/Windows64/Windows64_Minecraft.cpp +++ b/Minecraft.Client/Windows64/Windows64_Minecraft.cpp @@ -345,6 +345,7 @@ void DefineActions(void) InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_INVENTORY, _360_JOY_BUTTON_Y); InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_PAUSEMENU, _360_JOY_BUTTON_START); InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_DROP, _360_JOY_BUTTON_B); + InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_PICK_ITEM, _360_JOY_BUTTON_DPAD_DOWN); InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_SNEAK_TOGGLE, _360_JOY_BUTTON_RTHUMB); InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_CRAFTING, _360_JOY_BUTTON_X); InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_RENDER_THIRD_PERSON, _360_JOY_BUTTON_LTHUMB); @@ -394,6 +395,7 @@ void DefineActions(void) InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_INVENTORY, _360_JOY_BUTTON_Y); InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_PAUSEMENU, _360_JOY_BUTTON_START); InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_DROP, _360_JOY_BUTTON_B); + InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_PICK_ITEM, _360_JOY_BUTTON_DPAD_DOWN); InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_SNEAK_TOGGLE, _360_JOY_BUTTON_LTHUMB); InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_CRAFTING, _360_JOY_BUTTON_X); InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_RENDER_THIRD_PERSON, _360_JOY_BUTTON_RTHUMB); @@ -435,6 +437,7 @@ void DefineActions(void) InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_INVENTORY, _360_JOY_BUTTON_Y); InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_PAUSEMENU, _360_JOY_BUTTON_START); InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_DROP, _360_JOY_BUTTON_B); + InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_PICK_ITEM, _360_JOY_BUTTON_DPAD_DOWN); InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_SNEAK_TOGGLE, _360_JOY_BUTTON_LB); InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_CRAFTING, _360_JOY_BUTTON_X); InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_RENDER_THIRD_PERSON, _360_JOY_BUTTON_LTHUMB); diff --git a/Minecraft.Client/Xbox/Xbox_Minecraft.cpp b/Minecraft.Client/Xbox/Xbox_Minecraft.cpp index 04e4a8d5a..19353283f 100644 --- a/Minecraft.Client/Xbox/Xbox_Minecraft.cpp +++ b/Minecraft.Client/Xbox/Xbox_Minecraft.cpp @@ -137,6 +137,7 @@ void DefineActions(void) InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_INVENTORY, _360_JOY_BUTTON_Y); InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_PAUSEMENU, _360_JOY_BUTTON_START); InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_DROP, _360_JOY_BUTTON_B); + InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_PICK_ITEM, _360_JOY_BUTTON_DPAD_DOWN); InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_SNEAK_TOGGLE, _360_JOY_BUTTON_RTHUMB); InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_CRAFTING, _360_JOY_BUTTON_X); InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_RENDER_THIRD_PERSON, _360_JOY_BUTTON_LTHUMB); @@ -186,6 +187,7 @@ void DefineActions(void) InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_INVENTORY, _360_JOY_BUTTON_Y); InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_PAUSEMENU, _360_JOY_BUTTON_START); InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_DROP, _360_JOY_BUTTON_B); + InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_PICK_ITEM, _360_JOY_BUTTON_DPAD_DOWN); InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_SNEAK_TOGGLE, _360_JOY_BUTTON_LTHUMB); InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_CRAFTING, _360_JOY_BUTTON_X); InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_RENDER_THIRD_PERSON, _360_JOY_BUTTON_RTHUMB); @@ -235,6 +237,7 @@ void DefineActions(void) InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_INVENTORY, _360_JOY_BUTTON_Y); InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_PAUSEMENU, _360_JOY_BUTTON_START); InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_DROP, _360_JOY_BUTTON_B); + InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_PICK_ITEM, _360_JOY_BUTTON_DPAD_DOWN); InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_SNEAK_TOGGLE, _360_JOY_BUTTON_LB); InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_CRAFTING, _360_JOY_BUTTON_X); InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_RENDER_THIRD_PERSON, _360_JOY_BUTTON_LTHUMB);