comparison ActionTemplates.lua @ 93:f9df7cd7bfd6 tip

revert pet spell subText collation remove an empty script handler
author Nenue
date Tue, 04 Sep 2018 23:00:21 -0400
parents b80e78f4a17b
children
comparison
equal deleted inserted replaced
92:c1c9dd6063a8 93:f9df7cd7bfd6
12 local PetHasSpellbook, PetHasActionBar, GetPetActionInfo, HasPetSpells = PetHasSpellbook, PetHasActionBar, GetPetActionInfo, HasPetSpells 12 local PetHasSpellbook, PetHasActionBar, GetPetActionInfo, HasPetSpells = PetHasSpellbook, PetHasActionBar, GetPetActionInfo, HasPetSpells
13 local GetProfessions, GetProfessionInfo, GetTalentInfo = GetProfessions, GetProfessionInfo, GetTalentInfo 13 local GetProfessions, GetProfessionInfo, GetTalentInfo = GetProfessions, GetProfessionInfo, GetTalentInfo
14 local GetNumBindings, GetBinding = GetNumBindings, GetBinding 14 local GetNumBindings, GetBinding = GetNumBindings, GetBinding
15 15
16 local _, kb = ... 16 local _, kb = ...
17 local print = (DEVIAN_PNAME == 'SkeletonKey') and function(...) print('SK', ...) end or nop 17 local print = (DEVIAN_PNAME == 'SkeletonKey') and function(...) print('AT', ...) end or nop
18 local cprint = (DEVIAN_PNAME == 'SkeletonKey') and function(...) _G.print('Cfg', ...) end or nop 18 local cprint = (DEVIAN_PNAME == 'SkeletonKey') and function(...) _G.print('Cfg', ...) end or nop
19 19
20 local CLICK_KEYBINDER_MACRO = "CLICK SkeletonKeyMacro:" 20 local CLICK_KEYBINDER_MACRO = "CLICK SkeletonKeyMacro:"
21 local CLICK_KEYBINDER_KEY = "CLICK SkeletonKeyKey:" 21 local CLICK_KEYBINDER_KEY = "CLICK SkeletonKeyKey:"
22 local PET_BASIC_SUBTEXT = 'Basic Attack' 22 local PET_BASIC_SUBTEXT = 'Basic Attack'
71 end 71 end
72 return CLICK_KEYBINDER_KEY, attributeName, name, SkeletonKeyKey 72 return CLICK_KEYBINDER_KEY, attributeName, name, SkeletonKeyKey
73 end 73 end
74 74
75 atype['petaction'] = function(_, name) 75 atype['petaction'] = function(_, name)
76 print('|cFF00FF00atype:petaction|r', name)
76 -- ID doesn't exist for basic commands, even though they can be picked up 77 -- ID doesn't exist for basic commands, even though they can be picked up
77 local attributeName, attributeValue = "petaction_" .. tostring(name), "/cast "..tostring(name) 78 local attributeName, attributeValue = "petaction_" .. tostring(name), "/use "..tostring(name)
78 79
79 if not petSpellCache then 80 if not petSpellCache then
80 kb.UpdatePetInfo() 81 kb.UpdatePetInfo()
81 end 82 end
82 -- Compose a multi-macro for subtext abilities 83 -- Compose a multi-macro for subtext abilities
83 if petSpellCache[name] then
84 attributeValue = ""
85 for spellName, enabled in pairs(petSubtextCache[petSpellCache[name]]) do
86 attributeValue = attributeValue .. "/cast " .. spellName .. "\n"
87 end
88 end
89 84
90 if PETACTION_SCRIPT[name] then 85 if PETACTION_SCRIPT[name] then
91 attributeName, attributeValue = unpack(PETACTION_SCRIPT[name]) 86 attributeName, attributeValue = unpack(PETACTION_SCRIPT[name])
92 elseif kb.PetCache.special[name] then 87
93 attributeName = "petaction_"..kb.PetCache.special[name][3].."_" .. tonumber(kb.PetCache.special[name][6]) 88 print(' scripts hit:', name, attributeName, attributeValue)
94 end 89 end
95 return CLICK_KEYBINDER_MACRO, attributeName, attributeValue, SkeletonKeyMacro 90 return CLICK_KEYBINDER_MACRO, attributeName, attributeValue, SkeletonKeyMacro
96 end 91 end
97 92
98 atype['battlepet'] = function(id, name) 93 atype['battlepet'] = function(id, name)
596 end 591 end
597 592
598 593
599 594
600 kb.UpdatePetInfo = function() 595 kb.UpdatePetInfo = function()
596 print('|cFFFFFF00kb.UpdatePetInfo()')
601 local hasPetSpells, petType = HasPetSpells() 597 local hasPetSpells, petType = HasPetSpells()
602 598
603 -- reconcile saved data if it becomes available 599 -- reconcile saved data if it becomes available
604 if kb.db then 600 if kb.db then
605 kb.db.petSpellsDB = kb.db.petSpellsDB or {} 601 kb.db.petSpellsDB = kb.db.petSpellsDB or {}
627 petSpellCache = {} 623 petSpellCache = {}
628 petSubtextCache = {} 624 petSubtextCache = {}
629 end 625 end
630 626
631 if PetHasSpellbook() then 627 if PetHasSpellbook() then
632 --print('PET SPELLBOOK') 628 print('PET SPELLBOOK')
633 local spellbookOffset = 1 629 local spellbookOffset = 1
634 local specialNum = {} 630 local specialNum = {}
635 local newSubtextItems = false 631 local newSubtextItems = false
636 632
637 repeat 633 repeat
638 634
639 local spellType, spellID = GetSpellBookItemInfo(spellbookOffset, BOOKTYPE_PET) 635 local spellType, spellID = GetSpellBookItemInfo(spellbookOffset, BOOKTYPE_PET)
640 local spellName, subText = GetSpellBookItemName(spellbookOffset, BOOKTYPE_PET) 636 local spellName, subText = GetSpellBookItemName(spellbookOffset, BOOKTYPE_PET)
641 local texture = GetSpellBookItemTexture(spellbookOffset, BOOKTYPE_PET) 637 local texture = GetSpellBookItemTexture(spellbookOffset, BOOKTYPE_PET)
642 if (spellType == 'SPELL') and (not IsPassiveSpell(spellbookOffset, BOOKTYPE_PET)) then 638
639
640 if (spellType == 'PETACTION') and (not IsPassiveSpell(spellbookOffset, BOOKTYPE_PET)) then
641
642 print('|cFF00FF00#'..spellbookOffset..'|r', spellType, spellID, spellName, subText, texture)
643 local info = kb.PetCache[spellName] or {} 643 local info = kb.PetCache[spellName] or {}
644 kb.PetCache.spellslot[spellName] = {spellbookOffset, spellName, subText, spellID, texture} 644 kb.PetCache.spellslot[spellName] = {spellbookOffset, spellName, subText, spellID, texture}
645 --print('|cFF00FF88spellslot['..spellName..']|r', '=>', i, subText) 645 print('|cFF00FF88spellslot['..spellName..']|r', '=>', spellName, spellID)
646 646
647 if subText then 647 if subText then
648 kb.PetCache.subtext[subText] = kb.PetCache.subtext[subText] or {} 648 kb.PetCache.subtext[subText] = kb.PetCache.subtext[subText] or {}
649 specialNum[subText] = (specialNum[subText] or 0) + 1 649 specialNum[subText] = (specialNum[subText] or 0) + 1
650 650
651 petSpellCache[spellName] = subText 651 petSpellCache[spellName] = subText
652 petSubtextCache[subText] = petSubtextCache[subText] or {} 652
653 653 --local entry = {spellbookOffset, spellName, subText, spellID, texture, specialNum[subText] }
654 -- add to the list
655 if not petSubtextCache[subText][spellName] then
656 petSubtextCache[subText][spellName] = true
657 newSubtextItems = true
658 --print('|cFF00FFFFspecial['..spellName..']|r', '\n','|cFF00FFFFsubtext['..subText..']['..specialNum[subText]..']|r', '=>', i, spellName, subText, spellID, texture, specialNum[subText])
659 end
660
661
662
663 local entry = {spellbookOffset, spellName, subText, spellID, texture, specialNum[subText] }
664 654
665 655
666 info.spellbookOffset = spellbookOffset 656 info.spellbookOffset = spellbookOffset
667 info.spellbookType = BOOKTYPE_PET 657 info.spellbookType = BOOKTYPE_PET
668 info.actionName = spellName 658 info.actionName = spellName
690 end 680 end
691 681
692 spellbookOffset = spellbookOffset + 1 682 spellbookOffset = spellbookOffset + 1
693 until spellType == nil 683 until spellType == nil
694 684
695 if newSubtextItems then
696
697 local macrotext = ""
698 for subText, spells in pairs(petSubtextCache) do
699 if specialNum[subText] then
700 for spellName, enabled in pairs(spells) do
701 macrotext = macrotext .. "/cast " .. spellName .. "\n"
702 end
703 kb.SecureAttribute(SkeletonKeyMacro, "*macrotext-petaction_"..subText.."_"..specialNum[subText], macrotext)
704 end
705 end
706 end
707
708 685
709 else 686 else
710 --print('NO PET SPELLBOOK') 687 --print('NO PET SPELLBOOK')
711 wipe(kb.PetCache.spell) 688 wipe(kb.PetCache.spell)
712 wipe(kb.PetCache.spellslot) 689 wipe(kb.PetCache.spellslot)
713 end 690 end
714 691
715 if PetHasActionBar() then 692 if PetHasActionBar() then
716 --print('PET ACTION BAR') 693 print('PET ACTION BAR')
717 for i = 1, 10 do 694 for i = 1, 10 do
718 695 local name, texture, _, _, _, _, spellId = GetPetActionInfo(i)
719
720 local name, subtext, texture, isToken, isActive = GetPetActionInfo(i)
721 if name then 696 if name then
722 kb.PetCache.action[i] = {name, subtext, texture, isToken, isActive } 697
698
699 print(i, name, texture, spellId)
700
701 kb.PetCache.action[i] = {name, texture, spellId}
723 702
724 703
725 end 704 end
726 --print('|cFFFFFF00action['..i..']|r', name, subtext, texture) 705 --print('|cFFFFFF00action['..i..']|r', name, subtext, texture)
727 end 706 end