From 5d8a972bb04185a4ff2adc7a2daa7cf5f4c639f8 Mon Sep 17 00:00:00 2001 From: Salikh Gurgenidze Date: Thu, 20 Nov 2025 12:26:42 +0400 Subject: [PATCH] feat: guda keybindings --- Bindings.xml | 8 +++++ Guda.toc | 2 ++ Localization.lua | 8 +++++ UI/BagFrame.lua | 76 ++++++++++++++++++++++++++---------------------- 4 files changed, 60 insertions(+), 34 deletions(-) create mode 100644 Bindings.xml create mode 100644 Localization.lua diff --git a/Bindings.xml b/Bindings.xml new file mode 100644 index 0000000..17166e0 --- /dev/null +++ b/Bindings.xml @@ -0,0 +1,8 @@ + + + Guda.Modules.BagFrame:Toggle() + + + Guda.Modules.BankFrame:Toggle() + + diff --git a/Guda.toc b/Guda.toc index 67cc084..2fca8b2 100644 --- a/Guda.toc +++ b/Guda.toc @@ -6,6 +6,8 @@ ## SavedVariables: Guda_DB ## SavedVariablesPerCharacter: Guda_CharDB +Localization.lua + Core\Init.lua Core\Database.lua Core\Events.lua diff --git a/Localization.lua b/Localization.lua new file mode 100644 index 0000000..00ce3b6 --- /dev/null +++ b/Localization.lua @@ -0,0 +1,8 @@ +-- Guda Localization + +-- Keybinding localization +BINDING_HEADER_GUDA = "Guda" +BINDING_NAME_GUDA_TOGGLE_BAGS = "Toggle Bags" +BINDING_NAME_GUDA_TOGGLE_BANK = "Toggle Bank" + +-- Additional localization strings can be added here diff --git a/UI/BagFrame.lua b/UI/BagFrame.lua index c084265..1c21ba3 100644 --- a/UI/BagFrame.lua +++ b/UI/BagFrame.lua @@ -1188,32 +1188,34 @@ end -- Alternative approach: Completely replace the bag open functions local function ReplaceBagOpenFunctions() - -- Store original functions - local originalOpenBag = OpenBag - local originalToggleBag = ToggleBag - - -- Override OpenBag - function OpenBag(bagId) - if bagId and bagId >= 0 and bagId <= 4 then - -- For regular bags, open Guda Bag View - BagFrame:Toggle() - else - -- For other containers, use original function - if originalOpenBag then - originalOpenBag(bagId) + -- Override OpenBag (if it exists) + if OpenBag then + local originalOpenBag = OpenBag + function OpenBag(bagId) + if bagId and bagId >= 0 and bagId <= 4 then + -- For regular bags, open Guda Bag View + BagFrame:Toggle() + else + -- For other containers, use original function + if originalOpenBag then + originalOpenBag(bagId) + end end end end - -- Override ToggleBag - function ToggleBag(bagId) - if bagId and bagId >= 0 and bagId <= 4 then - -- For regular bags, toggle Guda Bag View - BagFrame:Toggle() - else - -- For other containers, use original function - if originalToggleBag then - originalToggleBag(bagId) + -- Override ToggleBag (if it exists) + if ToggleBag then + local originalToggleBag = ToggleBag + function ToggleBag(bagId) + if bagId and bagId >= 0 and bagId <= 4 then + -- For regular bags, toggle Guda Bag View + BagFrame:Toggle() + else + -- For other containers, use original function + if originalToggleBag then + originalToggleBag(bagId) + end end end end @@ -1221,22 +1223,28 @@ end -- Hook to default bag opening local function HookDefaultBags() - -- Override ToggleBackpack - local originalToggleBackpack = ToggleBackpack - function ToggleBackpack() - BagFrame:Toggle() + -- Override ToggleBackpack (if it exists) + if ToggleBackpack then + local originalToggleBackpack = ToggleBackpack + function ToggleBackpack() + BagFrame:Toggle() + end end - -- Override OpenAllBags - local originalOpenAllBags = OpenAllBags - function OpenAllBags() - Guda_BagFrame:Show() + -- Override OpenAllBags (if it exists) + if OpenAllBags then + local originalOpenAllBags = OpenAllBags + function OpenAllBags() + Guda_BagFrame:Show() + end end - -- Override CloseAllBags - local originalCloseAllBags = CloseAllBags - function CloseAllBags() - Guda_BagFrame:Hide() + -- Override CloseAllBags (if it exists) + if CloseAllBags then + local originalCloseAllBags = CloseAllBags + function CloseAllBags() + Guda_BagFrame:Hide() + end end -- Hook individual bag opening functions (for bag slot buttons)