Mercurial > wow > skeletonkey
comparison KeyButton.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 | 5005aecc2dc8 |
| children |
comparison
equal
deleted
inserted
replaced
| 92:c1c9dd6063a8 | 93:f9df7cd7bfd6 |
|---|---|
| 75 icon = [[Interface\\ICONS\\ability_hunter_carve]] | 75 icon = [[Interface\\ICONS\\ability_hunter_carve]] |
| 76 } | 76 } |
| 77 } | 77 } |
| 78 | 78 |
| 79 | 79 |
| 80 -- This is needed to identify a spells that aren't reflected by GetCursorInfo() | 80 -- This is needed to identify spells that aren't reflected by GetCursorInfo() |
| 81 kb.OnPickupPetAction = function(slot, ...) | 81 kb.OnPickupPetAction = function(slot, ...) |
| 82 local isPickup = GetCursorInfo() | 82 local pickupType, texture, slot = GetCursorInfo() |
| 83 print(slot, ...) | 83 print('|cFFFF4400PickupPetAction|r', GetCursorInfo()) |
| 84 if kb.PetCache.action[slot] then | 84 |
| 85 if isPickup then | 85 CURSOR_SPELLSLOT = slot |
| 86 local key, _, texture = unpack(kb.PetCache.action[slot]) | 86 CURSOR_BOOKTYPE = 'pet' |
| 87 local spellName = _G[key] or key | 87 CURSOR_TEXTURE = texture |
| 88 if spellName and kb.PetCache.spellslot[spellName] then | 88 |
| 89 CURSOR_SPELLSLOT = kb.PetCache.spellslot[spellName][1] | 89 print('[cursor book]', CURSOR_BOOKTYPE, CURSOR_SPELLSLOT, 'texture:', CURSOR_TEXTURE) |
| 90 CURSOR_BOOKTYPE = BOOKTYPE_PET | |
| 91 CURSOR_TEXTURE = _G[texture] or texture | |
| 92 end | |
| 93 else | |
| 94 CURSOR_SPELLSLOT = nil | |
| 95 CURSOR_BOOKTYPE = nil | |
| 96 CURSOR_TEXTURE = nil | |
| 97 end | |
| 98 print('|cFFFF4400PickupPetAction|r', isPickup, CURSOR_PETACTION) | |
| 99 end | |
| 100 | |
| 101 local name, subtext, texture, isToken = GetPetActionInfo(slot) | |
| 102 if name then | |
| 103 kb.PetCache.action[slot] = {name, subtext, texture, isToken} | |
| 104 end | |
| 105 | |
| 106 | |
| 107 print('current cursor info', CURSOR_SPELLSLOT, CURSOR_BOOKTYPE, CURSOR_TEXTURE) | |
| 108 | 90 |
| 109 end | 91 end |
| 110 | 92 |
| 111 kb.OnPickupSpellBookItem = function(slot, bookType) | 93 kb.OnPickupSpellBookItem = function(slot, bookType) |
| 112 print('|cFFFF4400PickupSpellBookItem('.. tostring(slot).. ', '..tostring(bookType)..')') | 94 print('|cFFFF4400PickupSpellBookItem('.. tostring(slot).. ', '..tostring(bookType)..')') |
| 113 CURSOR_SPELLSLOT = slot | 95 CURSOR_SPELLSLOT = slot |
| 114 CURSOR_BOOKTYPE = bookType | 96 CURSOR_BOOKTYPE = bookType |
| 115 CURSOR_TEXTURE = GetSpellBookItemTexture(slot, bookType) | 97 CURSOR_TEXTURE = GetSpellBookItemTexture(slot, bookType) |
| 116 print('current cursor info', CURSOR_SPELLSLOT, CURSOR_BOOKTYPE, CURSOR_TEXTURE) | 98 print('[cursor book]', CURSOR_BOOKTYPE, CURSOR_SPELLSLOT, 'texture:', CURSOR_TEXTURE) |
| 117 end | 99 end |
| 118 | 100 |
| 119 kb.CreateHooks = function() | 101 kb.CreateHooks = function() |
| 120 hooksecurefunc("PickupSpellBookItem", kb.OnPickupSpellBookItem) | 102 hooksecurefunc("PickupSpellBookItem", kb.OnPickupSpellBookItem) |
| 121 hooksecurefunc("PickupPetAction", kb.OnPickupPetAction) | 103 hooksecurefunc("PickupPetAction", kb.OnPickupPetAction) |
| 151 self:GetParent():DeactivateSlot(self) | 133 self:GetParent():DeactivateSlot(self) |
| 152 SkeletonKey:Update() | 134 SkeletonKey:Update() |
| 153 end | 135 end |
| 154 end | 136 end |
| 155 | 137 |
| 156 function skb:OnUpdate() | |
| 157 end | |
| 158 function skb:OnClick(click) | 138 function skb:OnClick(click) |
| 159 print(self:GetName(), 'OnMouseDown', click) | 139 print(self:GetName(), 'OnMouseDown', click) |
| 160 local cursorType = GetCursorInfo() | 140 local cursorType = GetCursorInfo() |
| 161 if click == 'LeftButton' then | 141 if click == 'LeftButton' then |
| 162 if cursorType then | 142 if cursorType then |
| 185 function skb:OnReceiveDrag(...) | 165 function skb:OnReceiveDrag(...) |
| 186 self:DropToSlot() | 166 self:DropToSlot() |
| 187 end | 167 end |
| 188 | 168 |
| 189 function skb:DropToSlot () | 169 function skb:DropToSlot () |
| 190 print(self:GetName(),'|cFF0088FFreceived|r') | |
| 191 local actionType, actionID, subType, subData = GetCursorInfo() | 170 local actionType, actionID, subType, subData = GetCursorInfo() |
| 192 print('GetCursorInfo', GetCursorInfo()) | 171 print(self:GetName(),'|cFF0088FFDropToSlot|r', actionType, actionID, subType, subData) |
| 193 if actionType then | 172 if actionType then |
| 173 print('##', actionType) | |
| 194 | 174 |
| 195 if actionType == 'flyout' then | 175 if actionType == 'flyout' then |
| 176 print('## flyout button, abort') | |
| 196 ClearCursor() | 177 ClearCursor() |
| 197 ResetCursor() | 178 ResetCursor() |
| 198 return | 179 return |
| 199 end | 180 end |
| 200 | 181 |
| 201 | 182 |
| 202 local name, icon, _, macroName, macroText | 183 local name, icon, _, macroName, macroText |
| 203 local pickupID, pickupBook | 184 local pickupID, pickupBook |
| 204 | 185 |
| 205 if actionType == 'spell' then | 186 if actionType == 'spell' then |
| 206 local realName = GetSpellInfo(subData) | 187 local realName = GetSpellInfo(subData) |
| 207 name, _, icon, _, _, _, actionID = GetSpellInfo(subData) | 188 name, _, icon, _, _, _, actionID = GetSpellInfo(subData) |
| 208 | 189 |
| 209 if TALENT_SPELLS[actionID] then | 190 if TALENT_SPELLS[actionID] then |
| 210 name = TALENT_SPELLS[actionID].actionName | 191 name = TALENT_SPELLS[actionID].actionName |
| 211 actionID = TALENT_SPELLS[actionID].actionID | 192 actionID = TALENT_SPELLS[actionID].actionID |
| 212 icon = TALENT_SPELLS[actionID].icon | 193 icon = TALENT_SPELLS[actionID].icon |
| 213 elseif actionType == 'macro' then | 194 end |
| 214 name, icon, macroText = GetMacroInfo(actionID) | 195 |
| 215 macroName = name | 196 elseif actionType == 'macro' then |
| 216 elseif actionType == 'petaction' then | 197 name, icon, macroText = GetMacroInfo(actionID) |
| 217 if CURSOR_SPELLSLOT and CURSOR_BOOKTYPE then | 198 macroName = name |
| 218 | 199 elseif actionType == 'petaction' then |
| 219 local spellType, spellID = GetSpellBookItemInfo(CURSOR_SPELLSLOT, CURSOR_BOOKTYPE) | 200 |
| 220 local spellName, spellText = GetSpellBookItemName(CURSOR_SPELLSLOT, CURSOR_BOOKTYPE) | 201 |
| 221 if spellType == 'PETACTION' then | 202 |
| 222 name = spellName | 203 --local spellType, spellID = GetSpellBookItemInfo(actionID, BOOKTYPE_PET) |
| 223 actionID = spellText | 204 local spellName, spellText = GetSpellBookItemName(actionID, BOOKTYPE_PET) |
| 224 icon = CURSOR_TEXTURE | 205 |
| 225 else | 206 if subType then |
| 226 name, _, icon = GetSpellInfo(spellID) | 207 actionID = subType |
| 227 actionID = spellID | 208 end |
| 228 end | 209 |
| 229 | 210 |
| 230 pickupID = CURSOR_SPELLSLOT | 211 |
| 231 pickupBook = CURSOR_BOOKTYPE | 212 print('##PET', actionID, '=>', spellName, spellText) |
| 232 else | 213 pickupID = actionID |
| 233 | 214 name = GetSpellBookItemName(actionID, BOOKTYPE_PET) |
| 234 | 215 icon = GetSpellBookItemTexture(actionID, BOOKTYPE_PET) |
| 235 end | 216 actionID = name |
| 236 | 217 pickupBook = BOOKTYPE_PET |
| 237 elseif actionType == 'mount' then | 218 |
| 238 if subType == 0 then | 219 elseif actionType == 'mount' then |
| 239 name, _, icon = GetSpellInfo(SUMMON_RANDOM_FAVORITE_MOUNT_SPELL) | 220 if subType == 0 then |
| 240 actionID = 0 | 221 name, _, icon = GetSpellInfo(SUMMON_RANDOM_FAVORITE_MOUNT_SPELL) |
| 241 else | 222 actionID = 0 |
| 242 name, _, icon = GetMountInfoByID(actionID) | 223 else |
| 243 end | 224 name, _, icon = GetMountInfoByID(actionID) |
| 244 elseif actionType == 'item' then | 225 end |
| 245 name = GetItemInfo(actionID) | 226 elseif actionType == 'item' then |
| 246 icon = GetItemIcon(actionID) | 227 name = GetItemInfo(actionID) |
| 247 elseif actionType == 'battlepet' then | 228 icon = GetItemIcon(actionID) |
| 248 | 229 elseif actionType == 'battlepet' then |
| 249 local speciesID, customName, level, xp, maxXp, displayID, isFavorite, petName, petIcon, petType, creatureID = GetPetInfoByPetID(actionID) | 230 |
| 250 name = customName or petName | 231 local speciesID, customName, level, xp, maxXp, displayID, isFavorite, petName, petIcon, petType, creatureID = GetPetInfoByPetID(actionID) |
| 251 icon = petIcon | 232 name = customName or petName |
| 252 | 233 icon = petIcon |
| 253 end | 234 |
| 254 local _, macroBody, command = kb.RegisterAction(actionType, actionID, name) | 235 end |
| 255 local slotInfo = { | 236 local _, macroBody, command = kb.RegisterAction(actionType, actionID, name) |
| 256 command = command, | 237 local slotInfo = { |
| 257 actionName = name, | 238 command = command, |
| 258 iconPath = icon, | 239 actionName = name, |
| 259 actionType = actionType, | 240 iconPath = icon, |
| 260 actionID = actionID, | 241 actionType = actionType, |
| 261 macroName = macroName, | 242 actionID = actionID, |
| 262 macroText = macroText or macroBody, | 243 macroName = macroName, |
| 263 spellbookSlot = pickupID, | 244 macroText = macroText or macroBody, |
| 264 spellbookType = pickupBook, | 245 spellbookSlot = pickupID, |
| 265 assignedKeys = {GetBindingKey(command)} | 246 spellbookType = pickupBook, |
| 266 } | 247 assignedKeys = {GetBindingKey(command)} |
| 267 | 248 } |
| 268 local isAssigned, isBound, assignedBy, boundBy = kb.IsCommandBound(self, command) | 249 |
| 250 local isAssigned, isBound, assignedBy, boundBy = kb.IsCommandBound(self, command) | |
| 269 if isAssigned then | 251 if isAssigned then |
| 270 local popup = StaticPopupDialogs["SKELETONKEY_CONFIRM_ASSIGN_SLOT"] | 252 local popup = StaticPopupDialogs["SKELETONKEY_CONFIRM_ASSIGN_SLOT"] |
| 271 popup.slot = self | 253 popup.slot = self |
| 272 popup.text = "Currently assigned in |cFFFFFF00"..tostring(kb.configHeaders[assignedBy]).."|r. Are you sure?" | 254 popup.text = "Currently assigned in |cFFFFFF00"..tostring(kb.configHeaders[assignedBy]).."|r. Are you sure?" |
| 273 popup.oldProfile = assignedBy | 255 popup.oldProfile = assignedBy |
| 282 self.active = nil | 264 self.active = nil |
| 283 ClearCursor() | 265 ClearCursor() |
| 284 ResetCursor() | 266 ResetCursor() |
| 285 end | 267 end |
| 286 end | 268 end |
| 287 end | |
| 288 end | 269 end |
| 289 | 270 |
| 290 | 271 |
| 291 | 272 |
| 292 do | 273 do |
