Mercurial > wow > skeletonkey
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 |