Mercurial > wow > skeletonkey
view SkeletonKey/ActionTypes.lua @ 16:cdd387d39137
filename refactor
author | Nenue |
---|---|
date | Fri, 29 Jul 2016 21:18:15 -0400 |
parents | |
children | 500f9b2bd9ac |
line wrap: on
line source
-- SkeletonKey -- ActionTypes.lua -- Created: 7/29/2016 9:14 PM -- %file-revision% -- local kb, print, wrap = LibStub('LibKraken').register(KeyBinder) local SUMMON_RANDOM_FAVORITE_MOUNT_SPELL = 150544 local PETACTION_SCRIPT = { [PET_ACTION_MOVE_TO] = {SLASH_PET_MOVE_TO1, 'pet_move_to'}, [PET_ACTION_ATTACK] = {SLASH_PET_ATTACK1, 'pet_attack'}, [PET_ACTION_FOLLOW] = {SLASH_PET_FOLLOW1, 'pet_follow'}, [PET_ACTION_WAIT] = {SLASH_PET_STAY1, 'pet_stay'}, [PET_MODE_AGGRESSIVE] = {SLASH_PET_AGGRESSIVE1, 'pet_aggressive'}, [PET_MODE_DEFENSIVE] = {SLASH_PET_DEFENSIVE1, 'pet_defensive'}, [PET_MODE_PASSIVE] = {SLASH_PET_PASSIVE1, 'pet_passive'}, [PET_MODE_ASSIST] = {SLASH_PET_ASSIST1, 'pet_assist'}, } --- Caps Lock derivatives local ACTION_HANDLERS = {} ACTION_HANDLERS['mount'] = function(id, name) return "/script C_MountJournal.SummonByID("..id..")" end ACTION_HANDLERS['macro'] = "%s" ACTION_HANDLERS['equipset'] = "/script UseEquipmentSet(%d)" ACTION_HANDLERS['spell'] = "/cast %s" ACTION_HANDLERS['petaction'] = function(id, name) return PETACTION_SCRIPT[name] or "/cast ".. name end ACTION_HANDLERS['battlepet'] = SLASH_SUMMON_BATTLE_PET1 .. " %s" ACTION_HANDLERS['item'] = "/use %s" local professionMappings = { [5] = 3, [7] = 4, [9] = 5, [10] = 6 } --- Generates the command strings needed to assign different abilities kb.RegisterAction = function(actionType, id, name) local macroText, macroName, command = '', '', '' if actionType == 'spell' then if kb.ProfessionCache[id] then command = CLICK_KEYBINDER_KEY .. "profession_".. kb.ProfessionCache[id].profOffset .. '_' .. kb.ProfessionCache[id].spellNum else command = CLICK_KEYBINDER_KEY ..name end else if type(ACTION_SCRIPT[actionType]) == 'function' then macroName, macroText = ACTION_SCRIPT[actionType](id, name) else macroName = actionType .. ' ' .. name macroText = ACTION_SCRIPT[actionType]:format(name) end local baseName, iterative = macroName, 1 while (macros[macroName] and macros[macroName][1] ~= macroText) do print(' * cannot use|cFF00FF00', macroName, '|r"'.. (macros[macroName][1] or '') .. '"') macroName = baseName .. '_' .. iterative iterative = iterative + 1 end if macroName ~= baseName then print(' * Creating|cFF00FF00', macroName) else print(' * Re-using|cFF00FF00', macroName) end command = 'CLICK KeyBinderMacro:'.. macroName macros[macroName] = {macroText, command } end print('RegisterAction', actionType, id, '->', command , macroText) return macroName, macroText, command end