Mercurial > wow > skeletonkey
comparison SkeletonKey/ActionTemplates.lua @ 50:1aba8a6fd4a9
- fix kb.bindings content and define a generic function for constructing its keystrings
- handle hotkey text for actions placed in multiple slots
-- hotkey.actionbar generates a cache table for use during binding changes
| author | Nenue |
|---|---|
| date | Fri, 19 Aug 2016 01:12:56 -0400 |
| parents | 9a9d7f2a7c07 |
| children | a545933ddf3d |
comparison
equal
deleted
inserted
replaced
| 49:9a9d7f2a7c07 | 50:1aba8a6fd4a9 |
|---|---|
| 147 elseif actionType == 'macro' then | 147 elseif actionType == 'macro' then |
| 148 macro:SetAttribute("*macro-"..macroName, actionID) | 148 macro:SetAttribute("*macro-"..macroName, actionID) |
| 149 else | 149 else |
| 150 macro:SetAttribute("*macrotext-"..macroName, macroText) | 150 macro:SetAttribute("*macrotext-"..macroName, macroText) |
| 151 end | 151 end |
| 152 | 152 local indexKey = actionType..'_'..actionID |
| 153 cprint('Loading binding', actionType, actionID) | 153 cprint('Loading binding', indexKey) |
| 154 bindings[actionType] = bindings[actionType] or {} | 154 bindings[indexKey] = bindings[indexKey] or {} |
| 155 bindings[actionType][actionID] = bindings[actionType][actionID] or {} | 155 bindings[command] = bindings[indexKey] |
| 156 bindings[command] = bindings[actionType][actionID] | 156 return bindings[indexKey], actionID |
| 157 return bindings[actionType], actionID | |
| 158 end | 157 end |
| 159 | 158 |
| 160 kb.ApplyBindings = function (profile) | 159 kb.ApplyBindings = function (profile) |
| 161 cprint('binding profile', profile) | 160 cprint('binding profile', profile) |
| 162 for slot, data in pairs(profile.buttons) do | 161 for slot, data in pairs(profile.buttons) do |
| 179 local func = kb.CacheTalentBinding | 178 local func = kb.CacheTalentBinding |
| 180 local dest = kb.TalentBindings | 179 local dest = kb.TalentBindings |
| 181 if dummy then | 180 if dummy then |
| 182 cprint('|cFFBBFF00Active:|r', dummy) | 181 cprint('|cFFBBFF00Active:|r', dummy) |
| 183 local macroName, spellName, actionType, actionID = unpack(talentInfo) | 182 local macroName, spellName, actionType, actionID = unpack(talentInfo) |
| 184 bindings[actionType] = bindings[actionType] or {} | 183 local indexKey = actionType .. '_' .. actionID |
| 185 bindings[actionType][actionID] = {} | 184 bindings[indexKey] = {} |
| 186 func = kb.ApplyTalentBinding | 185 func = kb.ApplyTalentBinding |
| 187 dest = kb.bindings[actionType][actionID] | 186 dest = kb.bindings[indexKey] |
| 188 else | 187 else |
| 189 | 188 |
| 190 cprint('|cFFFF4400Inactive:|r', talentInfo[2]) | 189 cprint('|cFFFF4400Inactive:|r', talentInfo[2]) |
| 191 end | 190 end |
| 192 func(talentInfo, dest) | 191 func(talentInfo, dest) |
| 440 end | 439 end |
| 441 end | 440 end |
| 442 end | 441 end |
| 443 | 442 |
| 444 kb.UpdateBindingsCache = function(actionType, actionID, bindings) | 443 kb.UpdateBindingsCache = function(actionType, actionID, bindings) |
| 445 kb.bindings[actionType] = kb.bindings[actionType] or {} | 444 local indexKey = actionType .. '_' .. actionID |
| 446 kb.bindings[actionType][actionID] = bindings | 445 kb.bindings[indexKey] = bindings |
| 447 | 446 |
| 448 print('|cFF00FF00'..actionType..'-'..actionID..'|r = {', table.concat(bindings,', '), '}') | 447 print('|cFF00FF00'..indexKey..'|r = {', table.concat(bindings,', '), '}') |
| 449 tinsert(kb.ChangedBindings, {actionType, actionID}) | 448 tinsert(kb.ChangedBindings, {actionType, actionID}) |
| 450 end | 449 end |
