ImbusBinds/ImbusBinds.lua
2024-08-16 12:48:16 +02:00

155 lines
4.4 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'] = 'STARTAUTORUN',
['MOUSEWHEELDOWN'] = 'FOLLOWTARGET',
}
-- 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('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