comparison Modules/Currency.lua @ 133:86621c60512b v7.3.2-20171222

- Fixed AP calc tooltip appearing while hidden - Fixed PaperDoll relic tooltips missing nether crucible info
author Nenue
date Fri, 22 Dec 2017 20:36:40 -0500
parents 15a7f27b11e6
children 414e37af1b1b
comparison
equal deleted inserted replaced
132:4cb1d2a0c110 133:86621c60512b
12 12
13 local itemBlock = {} 13 local itemBlock = {}
14 local currencyBlock = {} 14 local currencyBlock = {}
15 15
16 16
17 local zoneEvents = { 17 local events = {
18 "ZONE_CHANGED_NEW_AREA", "ZONE_CHANGED_INDOORS", "ZONE_CHANGED" 18 'CHAT_MSG_LOOT',
19 } 19 "ZONE_CHANGED_NEW_AREA", "ZONE_CHANGED_INDOORS", "ZONE_CHANGED",
20 local currencyEvents = { 20 'BAG_UPDATE', 'CURRENCY_DISPLAY_UPDATE', 'CHAT_MSG_CURRENCY',
21 'CURRENCY_DISPLAY_UPDATE', 'CHAT_MSG_CURRENCY'
22 }
23 local itemEvents = {
24 'CHAT_MSG_LOOT', 'BAG_UPDATE'
25 } 21 }
26 22
27 local blocks = { 23 local blocks = {
28 ["Ancient Mana"] = { 24 ["Ancient Mana"] = {
29 currencyID = 1155, 25 currencyID = 1155,
85 end 81 end
86 82
87 function module:OnLoad () 83 function module:OnLoad ()
88 Veneer:AddHandler(self) 84 Veneer:AddHandler(self)
89 85
86 for _, event in ipairs(events) do
87 self:RegisterEvent(event)
88 end
89
90
90 for name, info in pairs(blocks) do 91 for name, info in pairs(blocks) do
91 local block = CreateFrame('Frame', nil, self, 'VeneerCurrencyTemplate') 92 local block = CreateFrame('Frame', nil, self, 'VeneerCurrencyTemplate')
92 block.name = name 93 block.name = name
93 for k,v in pairs(info) do 94 for k,v in pairs(info) do
94 print(name, k, '=', v) 95 print(name, k, '=', v)
98 block.debug = function(...) 99 block.debug = function(...)
99 print('|cFF0088FF<'..block.name..'>|r', ...) 100 print('|cFF0088FF<'..block.name..'>|r', ...)
100 end 101 end
101 block.id = info.itemID or info.currencyID 102 block.id = info.itemID or info.currencyID
102 103
104 block:SetScript('OnEnter', itemBlock.OnEnter or block.OnEnter)
105 block:SetScript('OnLeave', itemBlock.OnLeave or block.OnLeave)
103 106
104 if info.itemID then 107 if info.itemID then
105 local itemID = info.itemID 108 local itemID = info.itemID
106 items[itemID] = { 109 items[itemID] = {
107 count = 0, 110 count = 0,
108 frame = block 111 frame = block
109 } 112 }
110 block.Update = itemBlock.Update 113 block.Update = itemBlock.Update
111 RegisterEvents(block, itemEvents)
112 elseif info.currencyID then 114 elseif info.currencyID then
113 local currencyID = info.currencyID 115 local currencyID = info.currencyID
114 block.Update = currencyBlock.Update 116 block.Update = currencyBlock.Update
115 RegisterEvents(self, currencyEvents)
116 end 117 end
117 118
118 119
119 120
120 if info.zones then 121 if info.zones then
121 RegisterEvents(self, zoneEvents)
122 local zones = info.zones 122 local zones = info.zones
123 local of = block.Update 123 local of = block.Update
124 function block:Update() 124 function block:Update()
125 125
126 local zone = GetRealZoneText() 126 local zone = GetRealZoneText()
155 for itemID in pairs(items) do 155 for itemID in pairs(items) do
156 items[itemID].count = 0 156 items[itemID].count = 0
157 end 157 end
158 158
159 local canShow = false 159 local canShow = false
160
161 if BagBrother then 160 if BagBrother then
162 for i, bag in pairs(BagBrother.Player) do 161 for i, bag in pairs(BagBrother.Player) do
163 if type(bag) == 'table' then 162 if type(bag) == 'table' then
164 --print(i) 163 --print(i)
165 for j, item in pairs(bag) do 164 for j, item in pairs(bag) do
191 local numSlots = GetContainerNumSlots(i) 190 local numSlots = GetContainerNumSlots(i)
192 for j = 1, numSlots do 191 for j = 1, numSlots do
193 local itemID = GetContainerItemID(i, j) 192 local itemID = GetContainerItemID(i, j)
194 local texture, count = GetContainerItemInfo(i,j) 193 local texture, count = GetContainerItemInfo(i,j)
195 if items[itemID] then 194 if items[itemID] then
195
196 items[itemID].count = items[itemID].count + (count or 1) 196 items[itemID].count = items[itemID].count + (count or 1)
197 if not items[itemID].texture then 197 if not items[itemID].texture then
198 items[itemID].texture = texture 198 items[itemID].texture = texture
199 print('tracked currency tally', items[itemID].count, '|T'..texture..':16:16|t') 199 print('tracked currency tally', items[itemID].count, '|T'..texture..':16:16|t')
200 items[itemID].frame.Icon:SetTexture(texture) 200 items[itemID].frame.Icon:SetTexture(texture)
276 if GameTooltip:IsOwned(self) then 276 if GameTooltip:IsOwned(self) then
277 GameTooltip_Hide() 277 GameTooltip_Hide()
278 end 278 end
279 end 279 end
280 280
281 function block:OnEvent(event, ...)
282 self.debug('OnEvent', event, ...)
283 self:Update()
284 end
285
286 function block:Setup()
287 end
288 281
289 function itemBlock:Update() 282 function itemBlock:Update()
290 if items[self.itemID].count >= 1 then 283 if items[self.itemID].count >= 1 then
291 self.Icon:SetTexture(GetItemIcon(self.id)) 284 self.Icon:SetTexture(GetItemIcon(self.id))
292 self.Label:SetFormattedText("%d", items[self.id].count) 285 self.Label:SetFormattedText("%d", items[self.id].count)