comparison Modules/Currency.lua @ 126:3de635cda288 v7.3.17102017

- zone checking fix; moveed code into the zone-context pre-hook
author Nenue
date Tue, 17 Oct 2017 17:00:10 -0400
parents 3f4794dca91b
children 799ec6dce9c3
comparison
equal deleted inserted replaced
125:3f4794dca91b 126:3de635cda288
120 if info.zones then 120 if info.zones then
121 RegisterEvents(block, zoneEvents) 121 RegisterEvents(block, 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(zone, subZone) 124 function block:Update(zone, subZone)
125 block.debug('Update [Zone]', zone, subZone) 125
126 local zone = GetRealZoneText()
127 local subZone = GetSubZoneText()
128 block.debug('Zone Check', zone, subZone)
126 local canShow = ((zone and self.zones[zone]) or (subZone and self.zones[subZone])) and true or false 129 local canShow = ((zone and self.zones[zone]) or (subZone and self.zones[subZone])) and true or false
127 if of then 130 if of then
128 canShow = canShow and of(self) 131 canShow = canShow and of(self)
129 end 132 end
130 return canShow 133 return canShow
133 end 136 end
134 end 137 end
135 138
136 function module:OnEvent (event, arg) 139 function module:OnEvent (event, arg)
137 print(self:GetName(), 'OnEvent', event, arg) 140 print(self:GetName(), 'OnEvent', event, arg)
138 self:Update() 141 end
139 end 142
140 local toUpdate = {}
141 local wipe = table.wipe
142 function module:Update(isBatchUpdate) 143 function module:Update(isBatchUpdate)
143 print(self:GetName(), 'Update()') 144 print(self:GetName(), 'Update()')
144 if InCombatLockdown() then 145 if InCombatLockdown() then
145 self:SetShown(false) 146 self:SetShown(false)
146 return 147 return
148 149
149 150
150 for itemID in pairs(items) do 151 for itemID in pairs(items) do
151 items[itemID].count = 0 152 items[itemID].count = 0
152 end 153 end
153 self.realZoneText = GetRealZoneText() 154
154 self.subZoneText = GetSubZoneText()
155 local canShow = false 155 local canShow = false
156 156
157 for i = 0, NUM_BAG_SLOTS do 157 for i = 0, NUM_BAG_SLOTS do
158 local numSlots = GetContainerNumSlots(i) 158 local numSlots = GetContainerNumSlots(i)
159 for j = 1, numSlots do 159 for j = 1, numSlots do
191 191
192 block:SetHeight(24) 192 block:SetHeight(24)
193 block:SetWidth(block.Icon:GetWidth() + block.Label:GetStringWidth()+4) 193 block:SetWidth(block.Icon:GetWidth() + block.Label:GetStringWidth()+4)
194 totalWidth = totalWidth + block:GetWidth() 194 totalWidth = totalWidth + block:GetWidth()
195 end 195 end
196 print(block:IsShown(), '|cFF0088FF'..block.name..'|r', block:GetSize()) 196 print('|cFF0088FF'..block.name..'|r', block:IsShown(), block:GetSize())
197 end 197 end
198 198
199 self:UpdateProfile() 199 self:UpdateProfile()
200 self:SetWidth(totalWidth) 200 self:SetWidth(totalWidth)
201 201
242 GameTooltip_Hide() 242 GameTooltip_Hide()
243 end 243 end
244 end 244 end
245 245
246 function block:OnEvent(event, ...) 246 function block:OnEvent(event, ...)
247 print('|cFF0088FF<'..self.name..'>|r', 'OnEvent', event, ...) 247 self.debug('OnEvent', event, ...)
248 248 self:Update()
249 self:Update(GetRealZoneText(), GetSubZoneText())
250 end 249 end
251 250
252 function block:Setup() 251 function block:Setup()
253 252 end
254 end 253
255 function itemBlock:Update(zone, subZone) 254 function itemBlock:Update()
256 self.debug('Update [Item]', zone, subZone)
257 if items[self.itemID].count >= 1 then 255 if items[self.itemID].count >= 1 then
258 self.Icon:SetTexture(GetItemIcon(self.id)) 256 self.Icon:SetTexture(GetItemIcon(self.id))
259 self.Label:SetFormattedText("%d", items[self.id].count) 257 self.Label:SetFormattedText("%d", items[self.id].count)
260 return true 258 return true
261 end 259 end
262 return false 260 return false
263 end 261 end
264 262
265 function currencyBlock:Update(zone, subZone) 263 function currencyBlock:Update()
266 self.debug('Update [Currency]', zone, subZone)
267 local name, earned, texture, earnedThisWeek, weeklyMax, totalMax = GetCurrencyInfo(self.id) 264 local name, earned, texture, earnedThisWeek, weeklyMax, totalMax = GetCurrencyInfo(self.id)
268 265
269 self.Icon:SetTexture(texture) 266 self.Icon:SetTexture(texture)
270 if self.showMax then 267 if self.showMax then
271 self.Label:SetFormattedText("%d / %d", earned, totalMax) 268 self.Label:SetFormattedText("%d / %d", earned, totalMax)
272 else 269 else
273 self.Label:SetFormattedText("%d", earned) 270 self.Label:SetFormattedText("%d", earned)
274 end 271 end
275
276 --self:SetWidth(self.Icon:GetWidth() + self.Label:GetStringWidth() + 6)
277 return true 272 return true
278 end 273 end