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