diff options
| author | Adem Kurt <138557116+Adem-Kurt@users.noreply.github.com> | 2026-03-08 22:06:01 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-03-09 03:06:01 +0800 |
| commit | 4cec4f4500788f693566e443fdfa56337db05771 (patch) | |
| tree | 924484dfd5f8993f0aa6e3ef78b1365e20700da7 /Minecraft.Client/Minecraft.cpp | |
| parent | 45704388b6103ddc2d82d5f6ad740d64986490fc (diff) | |
Allow closing some menus with inventory/crafting keys (#868)
Diffstat (limited to 'Minecraft.Client/Minecraft.cpp')
| -rw-r--r-- | Minecraft.Client/Minecraft.cpp | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/Minecraft.Client/Minecraft.cpp b/Minecraft.Client/Minecraft.cpp index 46e8497a..599a14f2 100644 --- a/Minecraft.Client/Minecraft.cpp +++ b/Minecraft.Client/Minecraft.cpp @@ -1,5 +1,6 @@ #include "stdafx.h" #include "Minecraft.h" +#include "Common/UI/UIScene.h" #include "GameMode.h" #include "Timer.h" #include "ProgressRenderer.h" @@ -1479,9 +1480,22 @@ void Minecraft::run_middle() if(g_KBMInput.IsMouseButtonPressed(KeyboardMouseInput::MOUSE_RIGHT)) localplayers[i]->ullButtonsPressed|=1LL<<MINECRAFT_ACTION_USE; + bool isClosableByEitherKey = ui.IsSceneInStack(i, eUIScene_FurnaceMenu) || + ui.IsSceneInStack(i, eUIScene_ContainerMenu) || + ui.IsSceneInStack(i, eUIScene_DispenserMenu) || + ui.IsSceneInStack(i, eUIScene_EnchantingMenu) || + ui.IsSceneInStack(i, eUIScene_BrewingStandMenu) || + ui.IsSceneInStack(i, eUIScene_TradingMenu) || + ui.IsSceneInStack(i, eUIScene_AnvilMenu) || + ui.IsSceneInStack(i, eUIScene_HopperMenu) || + ui.IsSceneInStack(i, eUIScene_BeaconMenu) || + ui.IsSceneInStack(i, eUIScene_InventoryMenu) || + ui.IsSceneInStack(i, eUIScene_HorseMenu); + bool isEditing = ui.GetTopScene(i) && ui.GetTopScene(i)->isDirectEditBlocking(); + if(g_KBMInput.IsKeyPressed(KeyboardMouseInput::KEY_INVENTORY)) { - if(ui.IsSceneInStack(i, eUIScene_InventoryMenu)) + if(isClosableByEitherKey && !isEditing) { ui.CloseUIScenes(i); } @@ -1496,7 +1510,7 @@ void Minecraft::run_middle() if(g_KBMInput.IsKeyPressed(KeyboardMouseInput::KEY_CRAFTING) || g_KBMInput.IsKeyPressed(KeyboardMouseInput::KEY_CRAFTING_ALT)) { - if(ui.IsSceneInStack(i, eUIScene_Crafting2x2Menu) || ui.IsSceneInStack(i, eUIScene_Crafting3x3Menu) || ui.IsSceneInStack(i, eUIScene_CreativeMenu)) + if((ui.IsSceneInStack(i, eUIScene_Crafting2x2Menu) || ui.IsSceneInStack(i, eUIScene_Crafting3x3Menu) || ui.IsSceneInStack(i, eUIScene_CreativeMenu) || isClosableByEitherKey) && !isEditing) { ui.CloseUIScenes(i); } |
