comparison SkeletonKey/KeyBinds.lua @ 13:eeec4a600064

- kb.bindings carries the exact values needed for matching GetActionInfo() outputs
author Nenue
date Thu, 28 Jul 2016 18:20:32 -0400
parents e7977b336bf7
children
comparison
equal deleted inserted replaced
12:8f8917d111c9 13:eeec4a600064
201 actionID = subData 201 actionID = subData
202 name, _, icon = GetSpellInfo(actionID) 202 name, _, icon = GetSpellInfo(actionID)
203 203
204 elseif actionType == 'macro' then 204 elseif actionType == 'macro' then
205 name, icon = GetMacroInfo(actionID) 205 name, icon = GetMacroInfo(actionID)
206 actionID = name
207 elseif actionType == 'petaction' then 206 elseif actionType == 'petaction' then
208 if not (CURSOR_SPELLSLOT and CURSOR_BOOKTYPE) then 207 if not (CURSOR_SPELLSLOT and CURSOR_BOOKTYPE) then
209 208
210 ClearCursor() 209 ClearCursor()
211 ResetCursor() 210 ResetCursor()
213 212
214 local bookType, spellID = GetSpellBookItemInfo(CURSOR_SPELLSLOT, CURSOR_BOOKTYPE) 213 local bookType, spellID = GetSpellBookItemInfo(CURSOR_SPELLSLOT, CURSOR_BOOKTYPE)
215 pickupID = CURSOR_SPELLSLOT 214 pickupID = CURSOR_SPELLSLOT
216 pickupBook = CURSOR_BOOKTYPE 215 pickupBook = CURSOR_BOOKTYPE
217 name, _, icon = GetSpellInfo(spellID) 216 name, _, icon = GetSpellInfo(spellID)
218 actionID = name
219
220 elseif actionType == 'mount' then 217 elseif actionType == 'mount' then
221 if subType == 0 then 218 if subType == 0 then
222 name, _, icon = GetSpellInfo(SUMMON_RANDOM_FAVORITE_MOUNT_SPELL) 219 name, _, icon = GetSpellInfo(SUMMON_RANDOM_FAVORITE_MOUNT_SPELL)
223 actionID = 0 220 actionID = 0
224 else 221 else
233 local speciesID, customName, level, xp, maxXp, displayID, isFavorite, petName, petIcon, petType, creatureID = C_PetJournal.GetPetInfoByPetID(detail); 230 local speciesID, customName, level, xp, maxXp, displayID, isFavorite, petName, petIcon, petType, creatureID = C_PetJournal.GetPetInfoByPetID(detail);
234 name = customName or petName 231 name = customName or petName
235 icon = petIcon 232 icon = petIcon
236 233
237 end 234 end
238 macroName, macroText, command = kb.RegisterAction(actionType, actionID) 235 macroName, macroText, command = kb.RegisterAction(actionType, actionID, name)
239 236
240 237
241 local isAssigned, isBound, assignedBy, boundBy = kb.IsCommandBound(self, command) 238 local isAssigned, isBound, assignedBy, boundBy = kb.IsCommandBound(self, command)
242 if isAssigned then 239 if isAssigned then
243 local popup = StaticPopupDialogs["SKELETONKEY_CONFIRM_ASSIGN_SLOT"] 240 local popup = StaticPopupDialogs["SKELETONKEY_CONFIRM_ASSIGN_SLOT"]
282 end 279 end
283 end 280 end
284 281
285 282
286 --- Resolve the appropriate command and macroText for the given action parameters 283 --- Resolve the appropriate command and macroText for the given action parameters
287 kb.RegisterAction = function(type, id) 284 kb.RegisterAction = function(type, id, name)
288 local macroText, macroName, command = '', '', '' 285 local macroText, macroName, command = '', '', ''
289 286
290 if type == 'spell' then 287 if type == 'spell' then
291 if kb.ProfessionCache[id] then 288 if kb.ProfessionCache[id] then
292 command = CLICK_KEYBINDER_KEY .. "profession_".. kb.ProfessionCache[id].profOffset .. '_' .. kb.ProfessionCache[id].spellNum 289 command = CLICK_KEYBINDER_KEY .. "profession_".. kb.ProfessionCache[id].profOffset .. '_' .. kb.ProfessionCache[id].spellNum
293 else 290 else
294 command = CLICK_KEYBINDER_KEY ..id 291 command = CLICK_KEYBINDER_KEY ..name
295 end 292 end
296 else 293 else
297 macroName = type .. ' ' .. id 294 macroName = type .. ' ' .. name
298 macroText = ACTION_SCRIPT[type]:format(id) 295 macroText = ACTION_SCRIPT[type]:format(name)
299 local baseName, iterative = macroName, 1 296 local baseName, iterative = macroName, 1
300 while (macros[macroName] and macros[macroName][1] ~= macroText) do 297 while (macros[macroName] and macros[macroName][1] ~= macroText) do
301 print(' * cannot use|cFF00FF00', macroName, '|r"'.. (macros[macroName][1] or '') .. '"') 298 print(' * cannot use|cFF00FF00', macroName, '|r"'.. (macros[macroName][1] or '') .. '"')
302 macroName = baseName .. '_' .. iterative 299 macroName = baseName .. '_' .. iterative
303 iterative = iterative + 1 300 iterative = iterative + 1
449 --cprint(spellID, unpack(kb.inactiveTalentBindings[spellID])) 446 --cprint(spellID, unpack(kb.inactiveTalentBindings[spellID]))
450 end 447 end
451 448
452 kb.LoadBinding = function(command, name, icon, actionType, actionID, macroName, macroText ) 449 kb.LoadBinding = function(command, name, icon, actionType, actionID, macroName, macroText )
453 450
454
455
456 if actionType == 'spell' then 451 if actionType == 'spell' then
457 KeyBinderKey:SetAttribute("*type-"..name, actionType) 452 KeyBinderKey:SetAttribute("*type-"..name, actionType)
458 KeyBinderKey:SetAttribute("*"..actionType.."-"..name, name) 453 KeyBinderKey:SetAttribute("*"..actionType.."-"..name, name)
454
459 elseif actionType == 'item' then 455 elseif actionType == 'item' then
460 KeyBinderKey:SetAttribute("*type-"..name, actionType) 456 KeyBinderKey:SetAttribute("*type-"..name, actionType)
461 KeyBinderKey:SetAttribute("*"..actionType.."-"..name, name) 457 KeyBinderKey:SetAttribute("*"..actionType.."-"..name, name)
462 elseif actionType == 'macro' then 458 elseif actionType == 'macro' then
463 KeyBinderMacro:SetAttribute("*macro-"..macroName, actionID) 459 KeyBinderMacro:SetAttribute("*macro-"..macroName, actionID)
464 else 460 else
465 KeyBinderMacro:SetAttribute("*macrotext-"..macroName, macroText) 461 KeyBinderMacro:SetAttribute("*macrotext-"..macroName, macroText)
466 end 462 end
463
464 cprint('Loading binding', actionType, actionID)
467 bindings[actionType] = bindings[actionType] or {} 465 bindings[actionType] = bindings[actionType] or {}
468 bindings[actionType][actionID] = bindings[actionType][actionID] or {} 466 bindings[actionType][actionID] = bindings[actionType][actionID] or {}
469 bindings[command] = bindings[actionType][actionID] 467 bindings[command] = bindings[actionType][actionID]
470 return bindings[actionType], actionID 468 return bindings[actionType], actionID
471 end 469 end