comparison SkeletonKey/ActionTypes.lua @ 16:cdd387d39137

filename refactor
author Nenue
date Fri, 29 Jul 2016 21:18:15 -0400
parents
children 500f9b2bd9ac
comparison
equal deleted inserted replaced
15:32d64e42ec9b 16:cdd387d39137
1 -- SkeletonKey
2 -- ActionTypes.lua
3 -- Created: 7/29/2016 9:14 PM
4 -- %file-revision%
5 --
6 local kb, print, wrap = LibStub('LibKraken').register(KeyBinder)
7
8 local SUMMON_RANDOM_FAVORITE_MOUNT_SPELL = 150544
9
10 local PETACTION_SCRIPT = {
11 [PET_ACTION_MOVE_TO] = {SLASH_PET_MOVE_TO1, 'pet_move_to'},
12 [PET_ACTION_ATTACK] = {SLASH_PET_ATTACK1, 'pet_attack'},
13 [PET_ACTION_FOLLOW] = {SLASH_PET_FOLLOW1, 'pet_follow'},
14 [PET_ACTION_WAIT] = {SLASH_PET_STAY1, 'pet_stay'},
15 [PET_MODE_AGGRESSIVE] = {SLASH_PET_AGGRESSIVE1, 'pet_aggressive'},
16 [PET_MODE_DEFENSIVE] = {SLASH_PET_DEFENSIVE1, 'pet_defensive'},
17 [PET_MODE_PASSIVE] = {SLASH_PET_PASSIVE1, 'pet_passive'},
18 [PET_MODE_ASSIST] = {SLASH_PET_ASSIST1, 'pet_assist'},
19 }
20
21 --- Caps Lock derivatives
22 local ACTION_HANDLERS = {}
23 ACTION_HANDLERS['mount'] = function(id, name)
24 return "/script C_MountJournal.SummonByID("..id..")"
25 end
26 ACTION_HANDLERS['macro'] = "%s"
27 ACTION_HANDLERS['equipset'] = "/script UseEquipmentSet(%d)"
28 ACTION_HANDLERS['spell'] = "/cast %s"
29 ACTION_HANDLERS['petaction'] = function(id, name)
30 return PETACTION_SCRIPT[name] or "/cast ".. name
31 end
32
33 ACTION_HANDLERS['battlepet'] = SLASH_SUMMON_BATTLE_PET1 .. " %s"
34 ACTION_HANDLERS['item'] = "/use %s"
35 local professionMappings = {
36 [5] = 3,
37 [7] = 4,
38 [9] = 5,
39 [10] = 6
40 }
41
42
43 --- Generates the command strings needed to assign different abilities
44 kb.RegisterAction = function(actionType, id, name)
45 local macroText, macroName, command = '', '', ''
46
47 if actionType == 'spell' then
48 if kb.ProfessionCache[id] then
49 command = CLICK_KEYBINDER_KEY .. "profession_".. kb.ProfessionCache[id].profOffset .. '_' .. kb.ProfessionCache[id].spellNum
50 else
51 command = CLICK_KEYBINDER_KEY ..name
52 end
53 else
54
55 if type(ACTION_SCRIPT[actionType]) == 'function' then
56 macroName, macroText = ACTION_SCRIPT[actionType](id, name)
57 else
58 macroName = actionType .. ' ' .. name
59 macroText = ACTION_SCRIPT[actionType]:format(name)
60 end
61
62 local baseName, iterative = macroName, 1
63 while (macros[macroName] and macros[macroName][1] ~= macroText) do
64 print(' * cannot use|cFF00FF00', macroName, '|r"'.. (macros[macroName][1] or '') .. '"')
65 macroName = baseName .. '_' .. iterative
66 iterative = iterative + 1
67 end
68 if macroName ~= baseName then
69 print(' * Creating|cFF00FF00', macroName)
70 else
71 print(' * Re-using|cFF00FF00', macroName)
72 end
73 command = 'CLICK KeyBinderMacro:'.. macroName
74 macros[macroName] = {macroText, command }
75 end
76
77 print('RegisterAction', actionType, id, '->', command , macroText)
78 return macroName, macroText, command
79 end