Mercurial > wow > skeletonkey
comparison ActionTemplates.lua @ 75:e75a2fd448c0
- binding slot mixin:
- store key binding definitions under their slot's data table
- apply action button attributes when a slot is assigned
- obtain correct macro body text when a macro is slotted
- fix algorithm for resolving renamed macro indices
- move spell detail lookup code out of mixin script
- event chains:
- initialize addon from PLAYER_LOGIN
- reload keybinds from PLAYER_SPECIALIZATION_CHANGED, after spec profile is resolved
- refresh interface content from SPELLS_CHANGED
- hard refresh after PLAYER_SPECIALIZATION_CHANGED
- hotkey text:
- restore communication and detection of key binding updates and reflect them accordingly
- properly respond to dynamic bindings that result from talent updates
author | Nenue |
---|---|
date | Mon, 23 Jan 2017 18:59:02 -0500 |
parents | 9824d524a661 |
children | 6623b7f2c1ca |
comparison
equal
deleted
inserted
replaced
74:9824d524a661 | 75:e75a2fd448c0 |
---|---|
97 atype['battlepet'] = function(id, name) | 97 atype['battlepet'] = function(id, name) |
98 return CLICK_KEYBINDER_MACRO, 'battlepet_' .. tostring(name), SLASH_SUMMON_BATTLE_PET1 .. " " .. tostring(name), SkeletonKeyMacro | 98 return CLICK_KEYBINDER_MACRO, 'battlepet_' .. tostring(name), SLASH_SUMMON_BATTLE_PET1 .. " " .. tostring(name), SkeletonKeyMacro |
99 end | 99 end |
100 | 100 |
101 atype['item'] = function(id, name) | 101 atype['item'] = function(id, name) |
102 return CLICK_KEYBINDER_KEY, tostring(name), id, SkeletonKeyKey | 102 return CLICK_KEYBINDER_KEY, tostring(name), tostring(name), SkeletonKeyKey |
103 end | 103 end |
104 | 104 |
105 | 105 |
106 --- Resolves the SecureActionButton attribute names used for the given action | 106 --- Resolves the SecureActionButton attribute names used for the given action |
107 kb.RegisterAction = function(actionType, id, name) | 107 kb.RegisterAction = function(actionType, id, name) |
216 local button = SkeletonKeyKey | 216 local button = SkeletonKeyKey |
217 local isAvailable | 217 local isAvailable |
218 local specialButtonType | 218 local specialButtonType |
219 if actionType == 'spell' then | 219 if actionType == 'spell' then |
220 cprint(GetSpellInfo(actionID)) | 220 cprint(GetSpellInfo(actionID)) |
221 cprint(GetSpellInfo(name)) | 221 if GetSpellInfo(actionID) then |
222 if GetSpellInfo(name) then | |
223 isAvailable = true | 222 isAvailable = true |
224 end | 223 end |
225 local dynamicInfo = kb.DynamicSpells[name] | 224 local dynamicInfo = kb.DynamicSpells[name] |
226 if dynamicInfo then | 225 if dynamicInfo then |
227 configTable.assignedKeys = configTable.assignedKeys or {GetBindingKey(configTable.command)} | 226 configTable.assignedKeys = configTable.assignedKeys or {GetBindingKey(configTable.command)} |
229 for k, v in pairs(dynamicInfo) do | 228 for k, v in pairs(dynamicInfo) do |
230 --cprint(' --', k, v) | 229 --cprint(' --', k, v) |
231 configTable[k] = v | 230 configTable[k] = v |
232 end | 231 end |
233 end | 232 end |
234 | 233 elseif actionType == 'item' then |
234 actionID = configTable.actionName | |
235 isAvailable = true | |
235 else | 236 else |
237 | |
236 if actionType ~= 'macro' then | 238 if actionType ~= 'macro' then |
237 actionPrefix = '*macrotext-' | 239 actionPrefix = '*macrotext-' |
238 end | 240 end |
239 | 241 |
240 specialButtonType = 'macro' | 242 specialButtonType = 'macro' |
372 local talent = profile.talents[configTable.actionName] | 374 local talent = profile.talents[configTable.actionName] |
373 if talent then | 375 if talent then |
374 configTable.assignedKeys = talent.assignedKeys | 376 configTable.assignedKeys = talent.assignedKeys |
375 end | 377 end |
376 if not configTable.assignedKeys then | 378 if not configTable.assignedKeys then |
377 configTable.assignedKeys = {GetBindingKey(configTable.command) } | 379 configTable.assignedKeys = {GetBindingKey(configTable.command)} |
378 end | 380 end |
379 if configTable.dynamicType == 'talent' then | 381 --if configTable.dynamicType == 'talent' then |
380 --kb:print(table.concat(configTable.assignedKeys, ', ') .. ' bound to '.. configTable.actionName) | 382 -- kb:print(table.concat(configTable.assignedKeys, ', ') .. ' bound to '.. configTable.actionName) |
381 end | 383 --end |
382 for _, key in pairs(configTable.assignedKeys) do | 384 for _, key in pairs(configTable.assignedKeys) do |
383 | 385 |
384 SetBinding(key, configTable.command) | 386 SetBinding(key, configTable.command) |
385 end | 387 end |
386 | 388 |
408 end | 410 end |
409 -- do this after to ensure that profession binds are properly overridden | 411 -- do this after to ensure that profession binds are properly overridden |
410 kb.UpdateProfessionInfo() | 412 kb.UpdateProfessionInfo() |
411 | 413 |
412 SaveBindings(GetCurrentBindingSet()) | 414 SaveBindings(GetCurrentBindingSet()) |
415 | |
413 | 416 |
414 end | 417 end |
415 end | 418 end |
416 | 419 |
417 | 420 |