ImbusBinds/ImbusBinds.lua
2023-10-29 15:25:41 +01:00

156 lines
4.7 KiB
Lua
Executable file

local _, u = ...
-- https://wowpedia.fandom.com/wiki/BindingID
local myBinds = {
-- Movement
["A"] = "STRAFELEFT",
["D"] = "STRAFERIGHT",
-- Character and bag toggles, since c and b are used for strafing
["F1"] = "OPENALLBAGS",
["F2"] = "TOGGLECHARACTER0",
-- Action Bar 1
["1"] = "ACTIONBUTTON1",
["2"] = "ACTIONBUTTON2",
["3"] = "ACTIONBUTTON3",
["4"] = "ACTIONBUTTON4",
["5"] = "ACTIONBUTTON5",
["6"] = "ACTIONBUTTON6",
["SHIFT-1"] = "ACTIONBUTTON7",
["SHIFT-2"] = "ACTIONBUTTON8",
["SHIFT-3"] = "ACTIONBUTTON9",
["SHIFT-4"] = "ACTIONBUTTON10",
["SHIFT-5"] = "ACTIONBUTTON11",
["SHIFT-6"] = "ACTIONBUTTON12",
-- Action Bar 2
["BUTTON5"] = "MULTIACTIONBAR1BUTTON1",
["BUTTON4"] = "MULTIACTIONBAR1BUTTON2",
["SHIFT-BUTTON5"] = "MULTIACTIONBAR1BUTTON3",
["SHIFT-BUTTON4"] = "MULTIACTIONBAR1BUTTON4",
["CTRL-BUTTON5"] = "MULTIACTIONBAR1BUTTON5",
["CTRL-BUTTON4"] = "MULTIACTIONBAR1BUTTON6",
["BUTTON3"] = "MULTIACTIONBAR1BUTTON7",
["SHIFT-BUTTON3"] = "MULTIACTIONBAR1BUTTON8",
["CTRL-BUTTON3"] = "MULTIACTIONBAR1BUTTON9",
["§"] = "MULTIACTIONBAR1BUTTON10",
["SHIFT-§"] = "MULTIACTIONBAR1BUTTON11",
["CTRL-§"] = "MULTIACTIONBAR1BUTTON12",
-- Action Bar 3
["Q"] = "MULTIACTIONBAR2BUTTON1",
["E"] = "MULTIACTIONBAR2BUTTON2",
["R"] = "MULTIACTIONBAR2BUTTON3",
["T"] = "MULTIACTIONBAR2BUTTON4",
["F"] = "MULTIACTIONBAR2BUTTON5",
["G"] = "MULTIACTIONBAR2BUTTON6",
["SHIFT-Q"] = "MULTIACTIONBAR2BUTTON7",
["SHIFT-E"] = "MULTIACTIONBAR2BUTTON8",
["SHIFT-R"] = "MULTIACTIONBAR2BUTTON9",
["SHIFT-T"] = "MULTIACTIONBAR2BUTTON10",
["SHIFT-F"] = "MULTIACTIONBAR2BUTTON11",
["SHIFT-G"] = "MULTIACTIONBAR2BUTTON12",
-- Action Bar 4
["S"] = "MULTIACTIONBAR3BUTTON1",
["Z"] = "MULTIACTIONBAR3BUTTON2",
["X"] = "MULTIACTIONBAR3BUTTON3",
["C"] = "MULTIACTIONBAR3BUTTON4",
["V"] = "MULTIACTIONBAR3BUTTON5",
["B"] = "MULTIACTIONBAR3BUTTON6",
["SHIFT-S"] = "MULTIACTIONBAR3BUTTON7",
["SHIFT-Z"] = "MULTIACTIONBAR3BUTTON8",
["SHIFT-X"] = "MULTIACTIONBAR3BUTTON9",
["SHIFT-C"] = "MULTIACTIONBAR3BUTTON10",
["SHIFT-V"] = "MULTIACTIONBAR3BUTTON11",
["SHIFT-B"] = "MULTIACTIONBAR3BUTTON12",
-- Action Bar 5
["CTRL-Q"] = "MULTIACTIONBAR4BUTTON1",
["CTRL-E"] = "MULTIACTIONBAR4BUTTON2",
["CTRL-R"] = "MULTIACTIONBAR4BUTTON3",
["CTRL-T"] = "MULTIACTIONBAR4BUTTON4",
["CTRL-F"] = "MULTIACTIONBAR4BUTTON5",
["CTRL-G"] = "MULTIACTIONBAR4BUTTON6",
["CTRL-1"] = "MULTIACTIONBAR4BUTTON7",
["CTRL-2"] = "MULTIACTIONBAR4BUTTON8",
["CTRL-3"] = "MULTIACTIONBAR4BUTTON9",
["CTRL-4"] = "MULTIACTIONBAR4BUTTON10",
["CTRL-5"] = "MULTIACTIONBAR4BUTTON11",
["CTRL-6"] = "MULTIACTIONBAR4BUTTON12",
}
local cameraBinds = {
-- Remove zoom from mousewheel
["-"] = "CAMERAZOOMOUT",
["+"] = "CAMERAZOOMIN",
["MOUSEWHEELUP"] = "FOLLOWTARGET",
["MOUSEWHEELDOWN"] = "STARTAUTORUN",
}
-- Unsets a binding, if it exists
local function unsetBinding(action)
local key1, key2 = GetBindingKey(action);
if key1 then
SetBinding(key1, nil);
end
if key2 then
SetBinding(key2, nil);
end
end
-- Same as SetBinding, but removes the old binding first
local function setBindingRM(key, action)
unsetBinding(action);
if SetBinding(key, action) then
u.success(key .. " -> " .. action);
else
u.error("Failed to set binding " .. key .. " to " .. action);
end
end
local function applyBindingSet(set)
for key, action in pairs(set) do
setBindingRM(key, action)
end
u.info("Bindings set!")
u.warn("Dont forget to reload your UI.")
end
local function enableBars()
SetActionBarToggles(1, 1, 1, 1);
SHOW_MULTI_ACTIONBAR_1 = 1 --Bottom Left Bar
SHOW_MULTI_ACTIONBAR_2 = 1 --Bottom Right Bar
SHOW_MULTI_ACTIONBAR_3 = 1 --Right Bar
SHOW_MULTI_ACTIONBAR_4 = 1 --Right Bar 2
MultiActionBar_Update();
SetCVar("alwaysShowActionBars", 1);
SetCVar("lockActionBars", 1);
SetCVar("countdownForCooldowns", 1);
SetCVar("autoLootDefault", 1);
SetCVar("cameraDistanceMaxZoomFactor", 2);
SetCVar("instantQuestText", 1);
SetCVar("nameplateShowAll", 1);
SetCVar("nameplateShowEnemies", 1);
SetCVar("nameplateMaxDistance", 35);
SetCVar("enableFloatingCombatText", 1);
end
local function BindsHandler(msg, editbox)
u.guards()
if msg == "" then
applyBindingSet(myBinds)
enableBars()
end
if msg == "camera" then
applyBindingSet(cameraBinds)
end
SaveBindings(1)
u.guards()
end
-- Register the /hello command
SLASH_BINDS1 = "/binds"
SlashCmdList["BINDS"] = BindsHandler