2023-10-29 14:32:28 +01:00
|
|
|
local _, u = ...
|
|
|
|
|
2023-10-28 14:52:57 +02:00
|
|
|
-- https://wowpedia.fandom.com/wiki/BindingID
|
|
|
|
local myBinds = {
|
2024-08-16 12:48:16 +02:00
|
|
|
-- Movement
|
|
|
|
['A'] = 'STRAFELEFT',
|
|
|
|
['D'] = 'STRAFERIGHT',
|
2023-10-28 16:46:49 +02:00
|
|
|
|
2024-08-16 12:48:16 +02:00
|
|
|
-- Character and bag toggles, since c and b are used for strafing
|
|
|
|
['F1'] = 'OPENALLBAGS',
|
|
|
|
['F2'] = 'TOGGLECHARACTER0',
|
2023-10-28 16:46:49 +02:00
|
|
|
|
2024-08-16 12:48:16 +02:00
|
|
|
-- 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',
|
2023-10-28 16:46:49 +02:00
|
|
|
|
2024-08-16 12:48:16 +02:00
|
|
|
-- 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',
|
2023-10-28 16:46:49 +02:00
|
|
|
|
2024-08-16 12:48:16 +02:00
|
|
|
-- 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',
|
2023-10-28 16:46:49 +02:00
|
|
|
|
2024-08-16 12:48:16 +02:00
|
|
|
-- 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',
|
2023-10-28 16:46:49 +02:00
|
|
|
|
2024-08-16 12:48:16 +02:00
|
|
|
-- 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',
|
2023-10-28 14:52:57 +02:00
|
|
|
}
|
|
|
|
|
2023-10-29 11:37:41 +01:00
|
|
|
local cameraBinds = {
|
2024-08-16 12:48:16 +02:00
|
|
|
-- Remove zoom from mousewheel
|
|
|
|
['-'] = 'CAMERAZOOMOUT',
|
|
|
|
['+'] = 'CAMERAZOOMIN',
|
2023-10-29 12:46:48 +01:00
|
|
|
|
2024-08-16 12:48:16 +02:00
|
|
|
['MOUSEWHEELUP'] = 'STARTAUTORUN',
|
|
|
|
['MOUSEWHEELDOWN'] = 'FOLLOWTARGET',
|
2023-10-29 11:37:41 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
-- Unsets a binding, if it exists
|
2023-10-29 11:15:45 +01:00
|
|
|
local function unsetBinding(action)
|
2024-08-16 12:48:16 +02:00
|
|
|
local key1, key2 = GetBindingKey(action)
|
|
|
|
if key1 then
|
|
|
|
SetBinding(key1, nil)
|
|
|
|
end
|
|
|
|
if key2 then
|
|
|
|
SetBinding(key2, nil)
|
|
|
|
end
|
2023-10-29 11:15:45 +01:00
|
|
|
end
|
|
|
|
|
2023-10-29 11:37:41 +01:00
|
|
|
-- Same as SetBinding, but removes the old binding first
|
2023-10-29 11:15:45 +01:00
|
|
|
local function setBindingRM(key, action)
|
2024-08-16 12:48:16 +02:00
|
|
|
unsetBinding(action)
|
|
|
|
if SetBinding(key, action) then
|
|
|
|
u.success(key .. ' -> ' .. action)
|
|
|
|
else
|
|
|
|
u.error('Failed to set binding ' .. key .. ' to ' .. action)
|
|
|
|
end
|
2023-10-29 11:15:45 +01:00
|
|
|
end
|
|
|
|
|
2023-10-29 11:37:41 +01:00
|
|
|
local function applyBindingSet(set)
|
2024-08-16 12:48:16 +02:00
|
|
|
for key, action in pairs(set) do
|
|
|
|
setBindingRM(key, action)
|
|
|
|
end
|
|
|
|
u.info 'Bindings set!'
|
|
|
|
u.warn 'Dont forget to reload your UI.'
|
2023-10-28 14:52:57 +02:00
|
|
|
end
|
|
|
|
|
2023-10-28 19:43:10 +02:00
|
|
|
local function enableBars()
|
2024-08-16 12:48:16 +02:00
|
|
|
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)
|
2023-10-28 19:43:10 +02:00
|
|
|
end
|
|
|
|
|
2023-10-28 16:46:49 +02:00
|
|
|
local function BindsHandler(msg, editbox)
|
2024-08-16 12:48:16 +02:00
|
|
|
u.guards()
|
|
|
|
if msg == '' then
|
|
|
|
applyBindingSet(myBinds)
|
|
|
|
enableBars()
|
|
|
|
end
|
|
|
|
if msg == 'camera' then
|
|
|
|
applyBindingSet(cameraBinds)
|
|
|
|
end
|
|
|
|
SaveBindings(1)
|
|
|
|
u.guards()
|
2023-10-28 14:52:57 +02:00
|
|
|
end
|
|
|
|
|
|
|
|
-- Register the /hello command
|
2024-08-16 12:48:16 +02:00
|
|
|
SLASH_BINDS1 = '/binds'
|
|
|
|
SlashCmdList['BINDS'] = BindsHandler
|