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 |
