ImbusBinds/ImbusBinds.lua

156 lines
4.4 KiB
Lua
Raw Normal View History

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
}
local cameraBinds = {
2024-08-16 12:48:16 +02:00
-- Remove zoom from mousewheel
['-'] = 'CAMERAZOOMOUT',
['+'] = 'CAMERAZOOMIN',
2024-08-16 12:48:16 +02:00
['MOUSEWHEELUP'] = 'STARTAUTORUN',
['MOUSEWHEELDOWN'] = 'FOLLOWTARGET',
}
-- 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
-- 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
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