comparison KeyButton.lua @ 71:ca3118127e5e

- Talent change detection - Use stored assignments for inactive talent slots
author Nenue
date Fri, 06 Jan 2017 16:21:49 -0500
parents 131d9190db6b
children c48913c5924c
comparison
equal deleted inserted replaced
70:131d9190db6b 71:ca3118127e5e
354 self.statusText = '|cFFFF4400'..PROFESSION_HEADERS[self.dynamicIndex]..'|r' 354 self.statusText = '|cFFFF4400'..PROFESSION_HEADERS[self.dynamicIndex]..'|r'
355 self.actionName = '(#'..self.dynamicIndex..')' 355 self.actionName = '(#'..self.dynamicIndex..')'
356 self.bindingText ='?' 356 self.bindingText ='?'
357 end 357 end
358 elseif self.dynamicType == 'talent' then 358 elseif self.dynamicType == 'talent' then
359
360 self.statusText = '|cFF00FFFF'.. TALENT .. '|r' 359 self.statusText = '|cFF00FFFF'.. TALENT .. '|r'
361 if self.isAvailable then 360 if self.isAvailable then
362 self.bindingText = kb.BindingString(GetBindingKey(self.command)) 361 self.bindingText = kb.BindingString(GetBindingKey(self.command))
363 else 362 else
364 if kb.TalentBindings[self.actionID] then 363
365 print(self.actionID, #kb.TalentBindings[self.actionID]) 364 print('|cFFFF4400', self.actionName, #self.assignedKeys, self.assignedKeys)
366 self.bindingText= kb.BindingString(unpack(kb.TalentBindings[self.actionID])) 365 print(self.actionID)
367 end 366 self.bindingText= kb.BindingString(self.assignedKeys)
368
369 end 367 end
370 elseif self.dynamicType == 'petaction' then 368 elseif self.dynamicType == 'petaction' then
371 self.bindingText = kb.BindingString(GetBindingKey(self.command)) 369 self.bindingText = kb.BindingString(GetBindingKey(self.command))
372 else 370 else
373 self.bindingText = kb.BindingString(GetBindingKey(self.command)) 371 self.bindingText = kb.BindingString(GetBindingKey(self.command))
532 info = SkeletonKey_GetGenericSpell(spellName, spellID, internalIcon or icon) 530 info = SkeletonKey_GetGenericSpell(spellName, spellID, internalIcon or icon)
533 end 531 end
534 end 532 end
535 info.isAvailable = isAvailable 533 info.isAvailable = isAvailable
536 534
537 cprint('|cFF00FF88SpellDetails:|r', info.actionName, info.actionID, info.dynamicType) 535 cprint('|cFF00FF88SpellDetails:|r', info.actionName, info.actionID, info.dynamicType, info.isAvailable)
538 for k,v in pairs(info) do 536 for k,v in pairs(info) do
539 cprint(' ',k,v) 537 --cprint(' ',k,v)
540 self[k] = v 538 self[k] = v
541 end 539 end
542 540
543 return info 541 return info
544 end 542 end
563 561
564 isBound = kb.IsCommandBound(self, self.command) 562 isBound = kb.IsCommandBound(self, self.command)
565 if actionType == 'spell' then 563 if actionType == 'spell' then
566 local info = SkeletonKey_GetSpellDetails(self) 564 local info = SkeletonKey_GetSpellDetails(self)
567 name, icon, actionType, actionID, macroName, macroText, pickupSlot, pickupBook = self.actionName, self.iconPath, self.actionType, self.actionID, self.macroName, self.macroText, self.spellbookSlot, self.spellbookType 565 name, icon, actionType, actionID, macroName, macroText, pickupSlot, pickupBook = self.actionName, self.iconPath, self.actionType, self.actionID, self.macroName, self.macroText, self.spellbookSlot, self.spellbookType
568 566 self.isAvailable = info and info.isAvailable
569 elseif actionType == 'petaction' then 567 elseif actionType == 'petaction' then
570 self.dynamicType = 'petaction' 568 self.dynamicType = 'petaction'
571 local specialType, specialNum = command:match(actionType..'_([%a%s]+)_(%d)') 569 local specialType, specialNum = command:match(actionType..'_([%a%s]+)_(%d)')
572 570
573 if kb.PetCache.subtext[specialType] then 571 if kb.PetCache.subtext[specialType] then
640 638
641 actionID = actionID or 0 639 actionID = actionID or 0
642 self:EnableKeyboard(true) 640 self:EnableKeyboard(true)
643 641
644 -- this is done to keep legacy key-values from breaking algorithm assumptions 642 -- this is done to keep legacy key-values from breaking algorithm assumptions
643 print(slotInfo.assignedKeys)
644 print(GetBindingKey(command))
645 self.assignedKeys = slotInfo.assignedKeys or {GetBindingKey(command)}
646
645 local slotInfo = { 647 local slotInfo = {
646 command = command, 648 command = command,
647 actionName = name, 649 actionName = name,
648 iconPath = icon, 650 iconPath = icon,
649 actionID = actionID, 651 actionID = actionID,
650 actionType = actionType, 652 actionType = actionType,
651 macroName = macroName, 653 macroName = macroName,
652 macroText = macroText, 654 macroText = macroText,
653 spellbookSlot = pickupSlot, 655 spellbookSlot = pickupSlot,
654 spellbookType = pickupBook, 656 spellbookType = pickupBook,
655 assignedKeys = {GetBindingKey(command)} 657 assignedKeys = slotInfo.assignedKeys,
658 dynamicType = self.dynamicType,
659 dynamicID = self.dynamicID,
660 dynamicIndex = self.dynamicIndex,
661 dynamicSubIndex = self.dynamicSubIndex
656 } 662 }
657 kb.currentProfile.buttons[slot] = slotInfo 663 kb.currentProfile.buttons[slot] = slotInfo
658 664
659 -- Clean up conflicting entries for loaded button 665 -- Clean up conflicting entries for loaded button
660 local previous = kb.currentProfile.commands[command] 666 local previous = kb.currentProfile.commands[command]
679 end 685 end
680 686
681 kb.currentProfile.commands[command] = slot 687 kb.currentProfile.commands[command] = slot
682 end 688 end
683 689
684 690 --self.assignedKeys = slotInfo.assignedKeys
685
686 self.isBound = isBound 691 self.isBound = isBound
687 self.pickupSlot = pickupSlot 692 self.pickupSlot = pickupSlot
688 self.pickupBook = pickupBook 693 self.pickupBook = pickupBook
689 self.macroText = macroText 694 self.macroText = macroText
690 self.macroName = macroName 695 self.macroName = macroName