Mercurial > wow > skeletonkey
comparison ActionTemplates.lua @ 86:d6831be74cf4
Partial functionality updates for 8.0
author | Nenue |
---|---|
date | Tue, 17 Jul 2018 14:46:43 -0400 |
parents | 9a206b105ea5 |
children | b80e78f4a17b |
comparison
equal
deleted
inserted
replaced
85:94a279e9c5a9 | 86:d6831be74cf4 |
---|---|
104 end | 104 end |
105 | 105 |
106 | 106 |
107 --- Resolves the SecureActionButton attribute names used for the given action | 107 --- Resolves the SecureActionButton attribute names used for the given action |
108 kb.RegisterAction = function(actionType, id, name) | 108 kb.RegisterAction = function(actionType, id, name) |
109 assert(atype[actionType], 'Missing actionType handler for `'..tostring(actionType)..'`') | 109 if not atype[actionType]then |
110 kb.print('Missing actionType handler for `'..tostring(actionType)..'`') | |
111 return | |
112 end | |
110 local prefix, attributeName, attributeValue, button = atype[actionType](id, name) | 113 local prefix, attributeName, attributeValue, button = atype[actionType](id, name) |
111 local command = prefix .. attributeName | 114 local command = prefix .. attributeName |
112 return attributeName, attributeValue, command, prefix, button | 115 return attributeName, attributeValue, command, prefix, button |
113 end | 116 end |
114 | 117 |
192 kb.LoadBinding = function( configTable) | 195 kb.LoadBinding = function( configTable) |
193 if configTable.command then | 196 if configTable.command then |
194 configTable.command = configTable.command:gsub('KeyBinder', 'SkeletonKey') | 197 configTable.command = configTable.command:gsub('KeyBinder', 'SkeletonKey') |
195 end | 198 end |
196 | 199 |
200 cprint('|cFF0088FFLoadBinding()|r', configTable.actionName, configTable.dynamicType) | |
201 local isAvailable | |
202 local dynamicType = configTable.dynamicType | |
203 if dynamicType == 'profession' then | |
204 local dynamicIndex, dynamicSubIndex = tonumber(configTable.dynamicIndex), tonumber(configTable.dynamicSubIndex) | |
205 cprint(' |cFF00FFFFDynamicInfo:|r', dynamicType, dynamicIndex, dynamicSubIndex) | |
206 | |
207 local extendedTable = kb.DynamicSpells[dynamicType][dynamicIndex] | |
208 | |
209 if extendedTable then | |
210 cprint(extendedTable) | |
211 for k,v in pairs(extendedTable) do | |
212 cprint(type(k), k) | |
213 end | |
214 local subTable = extendedTable[dynamicSubIndex] | |
215 | |
216 if subTable then | |
217 for k,v in pairs(subTable) do | |
218 cprint(' override', k, '=', v, '(was', configTable[k]) | |
219 configTable[k] = subTable[k] | |
220 end | |
221 --isAvailable = configTable.isAvailabl | |
222 --name, actionID = configTable.actionName, configTable.actionID | |
223 cprint(subTable.actionName, subTable.actionID) | |
224 isAvailable = true | |
225 end | |
226 end | |
227 end | |
228 | |
197 local command, name, icon, actionType, actionID, macroName, macroText = | 229 local command, name, icon, actionType, actionID, macroName, macroText = |
198 configTable.command, configTable.actionName, configTable.iconPath, configTable.actionType, | 230 configTable.command, configTable.actionName, configTable.iconPath, configTable.actionType, |
199 configTable.actionID, configTable.macroName, configTable.macroText | 231 configTable.actionID, configTable.macroName, configTable.macroText |
200 | 232 |
201 | 233 local indexKey = tostring(actionType)..'_'..tostring(actionID) |
202 local indexKey = actionType..'_'..actionID | 234 local actionPrefix = "*"..tostring(actionType).."-" |
203 local actionPrefix = "*"..actionType.."-" | |
204 local button = SkeletonKeyKey | 235 local button = SkeletonKeyKey |
205 local isAvailable | |
206 local specialButtonType | 236 local specialButtonType |
207 if actionType == 'spell' then | 237 if actionType == 'spell' then |
208 local realName, _, _, _, _, _, realID = GetSpellInfo(name) | 238 local realName, _, _, _, _, _, realID = GetSpellInfo(name) |
239 | |
209 if realName then | 240 if realName then |
210 if (realName ~= name) then | 241 if (realName ~= name) then |
211 print(' *** "', name, '" is replaced by...', realName, realID) | 242 cprint(' *** "', name, '" is replaced by...', realName, realID) |
212 --name, actionID = realName, realID | 243 --name, actionID = realName, realID |
213 indexKey = actionType .. '_'.. realID | 244 indexKey = actionType .. '_'.. realID |
214 end | 245 end |
215 elseif configTable.dynamicType == 'talent' then | 246 elseif dynamicType == 'talent' then |
216 print(' *** "', name, '" is a non-selected talent.') | 247 cprint(' |cFF00FFFFDynamicInfo:|r', dynamicType, table.concat(configTable.assignedKeys, ',')) |
248 cprint(' *** "', name, '" is a non-selected talent.') | |
217 return | 249 return |
218 end | 250 end |
219 | 251 |
220 | 252 if GetSpellInfo(realName or name) then |
221 | 253 |
222 local dynamicInfo = kb.DynamicSpells[name] | |
223 if dynamicInfo then | |
224 configTable.assignedKeys = configTable.assignedKeys or {GetBindingKey(configTable.command) } | |
225 | |
226 cprint('|cFF00FFFFDynamicInfo:|r', dynamicInfo.dynamicType, table.concat(configTable.assignedKeys, ',')) | |
227 for k, v in pairs(dynamicInfo) do | |
228 --cprint(' --', k, v) | |
229 configTable[k] = v | |
230 end | |
231 isAvailable = configTable.isAvailable | |
232 elseif GetSpellInfo(actionID) then | |
233 isAvailable = true | 254 isAvailable = true |
234 | 255 |
235 end | 256 end |
236 elseif actionType == 'item' then | 257 elseif actionType == 'item' then |
237 actionID = configTable.actionName | 258 actionID = configTable.actionName |
245 specialButtonType = 'macro' | 266 specialButtonType = 'macro' |
246 isAvailable = true | 267 isAvailable = true |
247 end | 268 end |
248 | 269 |
249 if isAvailable then | 270 if isAvailable then |
271 cprint(' available', actionType, actionID, name) | |
250 | 272 |
251 local attributeSuffix, attributeValue, command, target, button = kb.RegisterAction(actionType, actionID, name) | 273 local attributeSuffix, attributeValue, command, target, button = kb.RegisterAction(actionType, actionID, name) |
252 local actionKey = actionPrefix .. attributeSuffix | 274 local actionKey = tostring(actionPrefix) .. tostring(attributeSuffix) |
253 cprint('|cFF00FF88LoadBinding()|r', button:GetName(), "*type-"..attributeSuffix, actionType, '|cFFFFFF00'..actionKey, attributeValue, isAvailable) | 275 |
276 if not attributeSuffix then | |
277 cprint('failed to generate button attribute') | |
278 return | |
279 end | |
280 | |
281 | |
282 cprint('|cFF00FF88 result:|r', button and button:GetName(), "*type-"..tostring(attributeSuffix), actionType, '|cFFFFFF00'..actionKey, attributeValue, isAvailable) | |
254 | 283 |
255 | 284 |
256 kb.SecureAttribute(button, "*type-"..attributeSuffix, specialButtonType or actionType) | 285 kb.SecureAttribute(button, "*type-"..attributeSuffix, specialButtonType or actionType) |
257 kb.SecureAttribute(button, actionKey, attributeValue) | 286 kb.SecureAttribute(button, actionKey, attributeValue) |
258 | 287 |
259 cprint('|cFFFF4400add', name, isAvailable, indexKey, unpack(configTable.assignedKeys)) | 288 cprint(' |cFFFF4400add', name, isAvailable, indexKey, unpack(configTable.assignedKeys)) |
260 kb.bindings[indexKey] = configTable.assignedKeys | 289 kb.bindings[indexKey] = configTable.assignedKeys |
261 commandActions[command] = kb.bindings[indexKey] | 290 commandActions[command] = kb.bindings[indexKey] |
262 return command, kb.bindings[indexKey] | 291 return command, kb.bindings[indexKey] |
263 else | 292 else |
264 if kb.bindings[indexKey] then | 293 if kb.bindings[indexKey] then |
265 cprint('|cFFFF4400remove', name, isAvailable, indexKey, unpack(configTable.assignedKeys)) | 294 cprint(' |cFFFF4400remove', name, isAvailable, indexKey, unpack(configTable.assignedKeys)) |
266 kb.bindings[indexKey] = nil | 295 kb.bindings[indexKey] = nil |
267 end | 296 end |
268 | 297 |
269 return nil | 298 return nil |
270 end | 299 end |
470 end | 499 end |
471 | 500 |
472 end | 501 end |
473 end | 502 end |
474 | 503 |
504 --[[ | |
475 for row = 1, MAX_PVP_TALENT_TIERS do | 505 for row = 1, MAX_PVP_TALENT_TIERS do |
476 for col = 1, MAX_PVP_TALENT_COLUMNS do | 506 for col = 1, MAX_PVP_TALENT_COLUMNS do |
477 local talentID, talentName, icon, selected, available, spellID, unlocked = GetPvpTalentInfo(row, col, 1) | 507 local talentID, talentName, icon, selected, available, spellID, unlocked = GetPvpTalentInfo(row, col, 1) |
478 if spellID then | 508 if spellID then |
479 AddSpellInfo(spellID, talentName, icon, 'talent', talentID, row, col, selected) | 509 AddSpellInfo(spellID, talentName, icon, 'talent', talentID, row, col, selected) |
480 end | 510 end |
481 end | 511 end |
482 end | 512 end |
513 --]] | |
483 | 514 |
484 local numTabs = GetNumSpellTabs() | 515 local numTabs = GetNumSpellTabs() |
485 for i = 1, numTabs do | 516 for i = 1, numTabs do |
486 local name, texture, offset, numSpells = GetSpellTabInfo(i) | 517 local name, texture, offset, numSpells = GetSpellTabInfo(i) |
487 for spellLine = offset+1, offset+numSpells do | 518 for spellLine = offset+1, offset+numSpells do |
553 | 584 |
554 kb.DynamicSpells.profession[spellName] = profInfo | 585 kb.DynamicSpells.profession[spellName] = profInfo |
555 kb.DynamicSpells.profession[spellID] = profInfo | 586 kb.DynamicSpells.profession[spellID] = profInfo |
556 kb.DynamicSpells.profession[i] = kb.DynamicSpells.profession[i] or {} | 587 kb.DynamicSpells.profession[i] = kb.DynamicSpells.profession[i] or {} |
557 kb.DynamicSpells.profession[i][j] = profInfo | 588 kb.DynamicSpells.profession[i][j] = profInfo |
558 --print(' |cFF0088FF['..i..']|r|cFFFF44BB['..spellOffset+i..']|r', spellName, "profession_"..i .. '_' ..j) | 589 cprint(' |cFF0088FF['..i..']|r|cFFFF44BB['..j..']|r', spellName, "profession_"..i .. '_' ..j) |
559 end | 590 end |
560 end | 591 end |
561 | 592 |
562 end | 593 end |
563 | 594 |