Mercurial > wow > worldplan
comparison QuestPOI.lua @ 30:8cb750e79952
WorldPlan:
- Reworking filters to utilize newly added CVars
author | Nenue |
---|---|
date | Fri, 28 Oct 2016 14:06:07 -0400 |
parents | c1612c2c1840 |
children | d0114b51cdea |
comparison
equal
deleted
inserted
replaced
29:c1612c2c1840 | 30:8cb750e79952 |
---|---|
11 local TQ_RequestPreloadRewardData = C_TaskQuest.RequestPreloadRewardData | 11 local TQ_RequestPreloadRewardData = C_TaskQuest.RequestPreloadRewardData |
12 local QuestPOIGetIconInfo, WorldMapPOIFrame = QuestPOIGetIconInfo, WorldMapPOIFrame | 12 local QuestPOIGetIconInfo, WorldMapPOIFrame = QuestPOIGetIconInfo, WorldMapPOIFrame |
13 | 13 |
14 local print = DEVIAN_WORKSPACE and function(...) _G.print('WP', ...) end or function() end | 14 local print = DEVIAN_WORKSPACE and function(...) _G.print('WP', ...) end or function() end |
15 local qprint = DEVIAN_WORKSPACE and function(...) _G.print('POI', ...) end or function() end | 15 local qprint = DEVIAN_WORKSPACE and function(...) _G.print('POI', ...) end or function() end |
16 local wqprint = DEVIAN_WORKSPACE and function(...) _G.print('WorldQuest', ...) end or function() end | 16 local wqprint = DEVIAN_WORKSPACE and function(...) _G.print('WorldQuests', ...) end or function() end |
17 local iprint = DEVIAN_WORKSPACE and function(...) _G.print('ItemScan', ...) end or function() end | 17 local iprint = DEVIAN_WORKSPACE and function(...) _G.print('ItemScan', ...) end or function() end |
18 local QuestPOI = WorldPlanPOIMixin | 18 local QuestPOI = WorldPlanPOIMixin |
19 | 19 |
20 local ICON_UNKNOWN = "Interface\\ICONS\\inv_misc_questionmark" | 20 local ICON_UNKNOWN = "Interface\\ICONS\\inv_misc_questionmark" |
21 local ICON_MONEY = "Interface\\Buttons\\UI-GroupLoot-Coin-Up" | 21 local ICON_MONEY = "Interface\\Buttons\\UI-GroupLoot-Coin-Up" |
170 function WorldPlanPOIMixin:RefreshData (info) | 170 function WorldPlanPOIMixin:RefreshData (info) |
171 | 171 |
172 qprint('|cFF00FF88'..self:GetName()..':RefreshData()|r') | 172 qprint('|cFF00FF88'..self:GetName()..':RefreshData()|r') |
173 | 173 |
174 if info then | 174 if info then |
175 | |
176 self.x = info.x or self.x | |
177 self.y = info.y or self.y | |
178 self.inProgress = info.inProgress | 175 self.inProgress = info.inProgress |
179 self.floor = info.floor | 176 self.floor = info.floor |
180 self.numObjectives = info.numObjectives or 0 | 177 self.numObjectives = info.numObjectives or 0 |
181 print('|cFFFF4400subbing in new info', info.x, info.y, self.x, self.y) | 178 if info.x and info.y then |
179 self.x = info.x or self.x | |
180 self.y = info.y or self.y | |
181 qprint('|cFFFF4400applying taskInfo coords:', info.x, info.y) | |
182 end | |
183 | |
184 self.passesBlizzFilters = WorldMap_DoesWorldQuestInfoPassFilters(info) | |
182 end | 185 end |
183 | 186 |
184 | 187 |
185 local questID = self:GetID() | 188 local questID = self:GetID() |
186 local questTitle, rewardIcon, rewardName, rewardCount, rewardStyle, rewardType, itemID, quantity, quality, _ | 189 local questTitle, rewardIcon, rewardName, rewardCount, rewardStyle, rewardType, itemID, quantity, quality, _ |
187 local hasUpdate, isPending = self.isNew, false | 190 local hasUpdate, isPending = self.hasUpdate, self.isPending |
188 | 191 |
189 | 192 |
190 if not HaveQuestData(questID) then | 193 if not HaveQuestData(questID) then |
191 TQ_RequestPreloadRewardData(questID) | 194 TQ_RequestPreloadRewardData(questID) |
192 isPending = true | 195 isPending = true |
205 elseif money >= 1 then | 208 elseif money >= 1 then |
206 rewardIcon = ICON_MONEY | 209 rewardIcon = ICON_MONEY |
207 rewardName = GetMoneyString(money) | 210 rewardName = GetMoneyString(money) |
208 rewardType = REWARD_CASH | 211 rewardType = REWARD_CASH |
209 end | 212 end |
210 rewardStyle = WorldPlan:GetTypeInfo(rewardType) | 213 rewardStyle = self:GetTypeInfo(rewardType) |
211 | 214 |
212 self.itemNumber = rewardCount or self.itemNumber | 215 self.itemNumber = rewardCount or self.itemNumber |
213 self.rewardType = rewardType or REWARD_ITEM | 216 self.rewardType = rewardType or REWARD_ITEM |
214 self.style = rewardStyle | 217 self.style = rewardStyle |
215 | 218 |
262 self.hasUpdate = hasUpdate | 265 self.hasUpdate = hasUpdate |
263 self.isPending = isPending | 266 self.isPending = isPending |
264 | 267 |
265 | 268 |
266 qprint(' |cFF00FFFF'..questID..'|r hasUpdate:', hasUpdate, 'isPending:', isPending) | 269 qprint(' |cFF00FFFF'..questID..'|r hasUpdate:', hasUpdate, 'isPending:', isPending) |
267 qprint(' ', self.title, self.itemTexture, 'rewardType:', self.rewardType, 'tag:', self.tagID, 'style', self.style ) | 270 qprint(' ', 'rewardType:', self.rewardType, 'tag:', self.tagID) |
271 qprint(' ', tostring(self.title), " |T"..tostring(self.itemTexture)..":12:12|t", tostring(self.itemName)) | |
268 end | 272 end |
269 return hasUpdate, isPending | 273 return hasUpdate, isPending |
270 end | 274 end |
271 | 275 |
272 | 276 |
275 end | 279 end |
276 | 280 |
277 function WorldPlanPOIMixin:ShowNew() | 281 function WorldPlanPOIMixin:ShowNew() |
278 self:SetShown(true) | 282 self:SetShown(true) |
279 self.isNew = nil | 283 self.isNew = nil |
284 self.hasUpdate = true | |
280 self.FadeIn:Play() | 285 self.FadeIn:Play() |
281 end | 286 end |
282 | 287 |
283 function WorldPlanPOIMixin:OnShow () | 288 function WorldPlanPOIMixin:OnShow () |
284 qprint('|cFFFFFF00["'..tostring(self.title)..'"]|r:OnShow() update:', self.hasUpdate, 'new:', self.isNew, 'animation:', self.isAnimating) | 289 qprint('|cFFFFFF00["'..tostring(self.title)..'"]|r:OnShow() update:', self.hasUpdate, 'new:', self.isNew, 'animation:', self.isAnimating) |
285 qprint(debugstack()) | |
286 -- pop this on principle | 290 -- pop this on principle |
287 if self.hasUpdate then | 291 if self.hasUpdate then |
288 | |
289 self:Refresh() | 292 self:Refresh() |
290 end | 293 end |
291 | 294 |
292 end | 295 end |
293 function WorldPlanPOIMixin:OnHide() | 296 function WorldPlanPOIMixin:OnHide() |
326 self.subStyle = WorldPlan.db.defaultPinStyle.continent | 329 self.subStyle = WorldPlan.db.defaultPinStyle.continent |
327 end | 330 end |
328 | 331 |
329 function WorldPlanPOIMixin:OnEvent(event, ...) | 332 function WorldPlanPOIMixin:OnEvent(event, ...) |
330 if event == 'SUPER_TRACKED_QUEST_CHANGED' then | 333 if event == 'SUPER_TRACKED_QUEST_CHANGED' then |
331 if self:IsVisible() then | 334 self.hasUpdate = true |
332 self:Refresh() | |
333 end | |
334 end | 335 end |
335 end | 336 end |
336 | 337 |
337 | 338 |
338 local PIN_UPDATE_DELAY = .016 | 339 local PIN_UPDATE_DELAY = .016 |
339 local TOP_PIN_ID | 340 local TOP_PIN_ID |
340 function WorldPlanPOIMixin:OnUpdate (sinceLast) | 341 function WorldPlanPOIMixin:OnUpdate (sinceLast) |
342 | |
343 if self.hasUpdate then | |
344 wqprint('|cFFFFFF00push poi update') | |
345 self:Refresh() | |
346 return | |
347 end | |
341 -- control update check intervals | 348 -- control update check intervals |
342 self.throttle = (self.throttle or PIN_UPDATE_DELAY) - sinceLast | 349 self.throttle = (self.throttle or PIN_UPDATE_DELAY) - sinceLast |
343 if self.throttle <= 0 then | 350 if self.throttle <= 0 then |
344 -- factor overtime into the throttle timer | 351 -- factor overtime into the throttle timer |
345 self.throttle = PIN_UPDATE_DELAY - self.throttle | 352 self.throttle = PIN_UPDATE_DELAY - self.throttle |
359 if self.PendingFade:IsPlaying() then | 366 if self.PendingFade:IsPlaying() then |
360 self.PendingFade:Stop() | 367 self.PendingFade:Stop() |
361 end | 368 end |
362 end | 369 end |
363 | 370 |
364 if self.hasUpdate then | |
365 self:Refresh() | |
366 self.hasUpdate = nil | |
367 end | |
368 | 371 |
369 -- update time elements | 372 -- update time elements |
370 local tl = self.timeThreschold | 373 local tl = self.timeThreschold |
371 local timeLeft = TQ_GetQuestTimeLeftMinutes(questID) | 374 local timeLeft = TQ_GetQuestTimeLeftMinutes(questID) |
372 if timeLeft > 0 then | 375 if timeLeft > 0 then |
395 | 398 |
396 | 399 |
397 | 400 |
398 function WorldPlanPOIMixin:Refresh () | 401 function WorldPlanPOIMixin:Refresh () |
399 local db = WorldPlan.db | 402 local db = WorldPlan.db |
400 local print = qprint | 403 local print = wqprint |
401 print('|cFF00FF88["'..tostring(self.title)..'"]|r:Refresh()', tostring(self.title), "|T"..tostring(self.itemTexture)..":12:12|t", tostring(self.itemName)) | 404 print('|cFF00FF88'..self:GetName()..'|r:Refresh()') |
402 print(self.style) | |
403 | 405 |
404 | 406 |
405 | 407 |
406 local questID = self:GetID() | 408 local questID = self:GetID() |
407 local style,subStyle = WorldPlan:GetTypeInfo(self.rewardType or ((self.quality or 0) + 127)) | 409 local style,subStyle = self:GetTypeInfo(self.rewardType) |
408 if self.filtered then | 410 if self.filtered then |
409 subStyle = style.minimized | 411 subStyle = style.minimized |
410 end | 412 end |
413 self.style = style | |
414 | |
411 | 415 |
412 local borderMask = style.mask | 416 local borderMask = style.mask |
413 local borderFill = style.texture | 417 local borderFill = style.texture |
414 local iconBorder = self.iconBorder | 418 local iconBorder = self.iconBorder |
415 local icon = self.icon | 419 local icon = self.icon |
419 self.hasNumeric = style.hasNumeric | 423 self.hasNumeric = style.hasNumeric |
420 self.numberRGB = style.numberRGB | 424 self.numberRGB = style.numberRGB |
421 self.showNumber = subStyle.showNumber | 425 self.showNumber = subStyle.showNumber |
422 | 426 |
423 | 427 |
424 print(' - subStyle:', (self.filtered == true), self.subStyle) | |
425 | 428 |
426 --WorldPlan:print(tostring(self.title), "|T"..tostring(self.itemTexture)..":16:16|t", tostring(self.itemName)) | 429 --WorldPlan:print(tostring(self.title), "|T"..tostring(self.itemTexture)..":16:16|t", tostring(self.itemName)) |
427 SetMaskedTexture(icon, self.itemTexture or ICON_UNKNOWN, borderMask) | 430 SetMaskedTexture(icon, self.itemTexture or ICON_UNKNOWN, borderMask) |
428 icon:SetAllPoints(self) | 431 icon:SetAllPoints(self) |
429 | 432 |
430 if self.itemName then | 433 if self.itemName then |
431 local color = self.rewardColor or COMMON_COLOR | |
432 | |
433 | 434 |
434 | 435 |
435 if self.hasNumeric then | 436 if self.hasNumeric then |
437 if subStyle.numberFontObject then | |
438 wqprint('change font', _G[subStyle.numberFontObject]:GetName()) | |
439 self.count:SetFontObject(_G[subStyle.numberFontObject]) | |
440 end | |
441 | |
436 self.count:SetShown(true) | 442 self.count:SetShown(true) |
437 self.count:SetText(self.itemNumber) | 443 self.count:SetText(self.itemNumber) |
438 self.count:SetTextColor(unpack(self.numberRGB)) | 444 self.count:SetTextColor(unpack(self.numberRGB)) |
439 else | 445 else |
440 self.count:SetShown(false) | 446 self.count:SetShown(false) |
442 end | 448 end |
443 | 449 |
444 end | 450 end |
445 | 451 |
446 SetMaskedTexture(iconBorder, borderFill, borderMask) | 452 SetMaskedTexture(iconBorder, borderFill, borderMask) |
447 local border = WorldPlan:GetTypeInfo(self.rewardType) | 453 local border = self:GetTypeInfo(self.rewardType) |
448 print(self.rewardType, print) | |
449 iconBorder:SetVertexColor(border.r, border.g, border.b, border.a) | 454 iconBorder:SetVertexColor(border.r, border.g, border.b, border.a) |
450 iconBorder:SetDesaturated(true) | 455 iconBorder:SetDesaturated(true) |
451 | 456 |
452 local trackingBorder = self.supertrackBorder | 457 local trackingBorder = self.supertrackBorder |
453 | 458 |
470 if self.isElite then | 475 if self.isElite then |
471 self.EliteBorder:Show() | 476 self.EliteBorder:Show() |
472 else | 477 else |
473 self.EliteBorder:Hide() | 478 self.EliteBorder:Hide() |
474 end | 479 end |
475 qprint('|cFF88FF00updated', questID, self.title, self.rewardType, (style.showNumber and self.itemNumber) or '') | 480 --qprint('|cFF88FF00updated', questID, self.title, self.rewardType, (style.showNumber and self.itemNumber) or '') |
481 --print(' - subStyle:', (self.filtered == true), self.subStyle) | |
476 | 482 |
477 | 483 |
478 self:UpdateSize() | 484 self:UpdateSize() |
479 self.hasUpdate = nil | 485 self.hasUpdate = nil |
480 end | 486 end |