comparison QuestPOI.lua @ 64:876c3f0bfd0e

- script upvalues cleanup - add quest active status to pin metadata
author Nick@Zahhak
date Thu, 23 Mar 2017 05:26:51 -0400
parents 8e130c92698f
children 02f1d3bce558
comparison
equal deleted inserted replaced
63:8e130c92698f 64:876c3f0bfd0e
2 -- QuestPOI.lua 2 -- QuestPOI.lua
3 -- Created: 10/1/2016 7:21 PM 3 -- Created: 10/1/2016 7:21 PM
4 -- %file-revision% 4 -- %file-revision%
5 -- 5 --
6 local _, db = ... 6 local _, db = ...
7 7 local TQ_GetQuestInfoByQuestID = C_TaskQuest.GetQuestInfoByQuestID
8 local TQ_GetQuestInfoByQuestID = C_TaskQuest.GetQuestInfoByQuestID -- Return the name of a quest with a given ID
9 local TQ_GetQuestLocation = C_TaskQuest.GetQuestLocation 8 local TQ_GetQuestLocation = C_TaskQuest.GetQuestLocation
10 local TQ_GetQuestTimeLeftMinutes = C_TaskQuest.GetQuestTimeLeftMinutes 9 local TQ_GetQuestTimeLeftMinutes = C_TaskQuest.GetQuestTimeLeftMinutes
11 local TQ_IsActive = C_TaskQuest.IsActive 10 local TQ_IsActive = C_TaskQuest.IsActive
12 local TQ_RequestPreloadRewardData = C_TaskQuest.RequestPreloadRewardData 11 local TQ_RequestPreloadRewardData = C_TaskQuest.RequestPreloadRewardData
13 local QuestPOIGetIconInfo, WorldMapPOIFrame = QuestPOIGetIconInfo, WorldMapPOIFrame 12 local QuestPOIGetIconInfo, WorldMapPOIFrame = QuestPOIGetIconInfo, WorldMapPOIFrame
14 local WorldMap_DoesWorldQuestInfoPassFilters = WorldMap_DoesWorldQuestInfoPassFilters 13 local WorldMap_DoesWorldQuestInfoPassFilters = WorldMap_DoesWorldQuestInfoPassFilters
15 local QuestMapFrame_IsQuestWorldQuest = QuestMapFrame_IsQuestWorldQuest 14 local QuestMapFrame_IsQuestWorldQuest = QuestMapFrame_IsQuestWorldQuest
16 local GetAchievementNumCriteria, GetAchievementCriteriaInfo, GetAchievementInfo = GetAchievementNumCriteria, GetAchievementCriteriaInfo, GetAchievementInfo 15 local GetAchievementNumCriteria, GetAchievementCriteriaInfo, GetAchievementInfo = GetAchievementNumCriteria, GetAchievementCriteriaInfo, GetAchievementInfo
16
17 local IsQuestFlaggedCompleted = IsQuestFlaggedCompleted
18 local GetFactionInfoByID, GetQuestObjectiveInfo = GetFactionInfoByID, GetQuestObjectiveInfo
19 local GetQuestTagInfo, GetProfessionInfo = GetQuestTagInfo, GetProfessionInfo
20 local GetNumQuestLogRewards, GetNumQuestLogRewardCurrencies, HaveQuestData = GetNumQuestLogRewards, GetNumQuestLogRewardCurrencies, HaveQuestData
21 local GetQuestLogRewardMoney, GetQuestLogRewardCurrencyInfo, GetMoneyString = GetQuestLogRewardMoney, GetQuestLogRewardCurrencyInfo, GetMoneyString
22 local SpellCanTargetQuest, GetCVarBool = SpellCanTargetQuest, GetCVarBool
23 local SetSuperTrackedQuestID = SetSuperTrackedQuestID
24
17 local pairs, ipairs, tinsert, unpack, select = pairs, ipairs, tinsert, unpack, select 25 local pairs, ipairs, tinsert, unpack, select = pairs, ipairs, tinsert, unpack, select
18 local floor, mod, tostring, tonumber, GetSuperTrackedQuestID = floor, mod, tostring, tonumber, GetSuperTrackedQuestID 26 local floor, mod, tostring, tonumber, GetSuperTrackedQuestID = floor, mod, tostring, tonumber, GetSuperTrackedQuestID
19 local GameTooltip = GameTooltip 27 local GameTooltip = GameTooltip
20 local GetItemIcon = GetItemIcon 28 local GetItemIcon = GetItemIcon
21 29
186 end 194 end
187 end 195 end
188 196
189 end 197 end
190 198
191 local GetFactionInfoByID, GetQuestObjectiveInfo = GetFactionInfoByID, GetQuestObjectiveInfo
192 199
193 function QuestPOI:OnEnter() 200 function QuestPOI:OnEnter()
194 if self.filtered and (self.questID ~= GetSuperTrackedQuestID()) then 201 if self.filtered and (self.questID ~= GetSuperTrackedQuestID()) then
195 return 202 return
196 end 203 end
272 WorldMap_RestoreTooltip() 279 WorldMap_RestoreTooltip()
273 WorldMapTooltip:Hide(); 280 WorldMapTooltip:Hide();
274 end 281 end
275 282
276 -- attempt to pull pin data 283 -- attempt to pull pin data
277 local GetQuestTagInfo, GetProfessionInfo = GetQuestTagInfo, GetProfessionInfo
278 function QuestPOI:GetData () 284 function QuestPOI:GetData ()
279 dprint('|cFF00FF88'..self:GetID()..':GetData()|r') 285 dprint('|cFF00FF88'..self:GetID()..':GetData()|r')
280 local questID = self.questID 286 local questID = self.questID
281 if not questID then 287 if not questID then
282 dprint('|cFFFF4400bad pin|r', self:GetName()) 288 dprint('|cFFFF4400bad pin|r', self:GetName())
339 self.isCriteria = WorldMapFrame.UIElementsFrame.BountyBoard:IsWorldQuestCriteriaForSelectedBounty(questID) 345 self.isCriteria = WorldMapFrame.UIElementsFrame.BountyBoard:IsWorldQuestCriteriaForSelectedBounty(questID)
340 346
341 return self.isStale, self.isPending 347 return self.isStale, self.isPending
342 end 348 end
343 349
344 local GetNumQuestLogRewards, GetNumQuestLogRewardCurrencies, HaveQuestData = GetNumQuestLogRewards, GetNumQuestLogRewardCurrencies, HaveQuestData
345 local GetQuestLogRewardMoney, GetQuestLogRewardCurrencyInfo, GetMoneyString = GetQuestLogRewardMoney, GetQuestLogRewardCurrencyInfo, GetMoneyString
346 function QuestPOI:SetRewardInfo() 350 function QuestPOI:SetRewardInfo()
347 local questID = self.questID 351 local questID = self.questID
348 if not HaveQuestData(questID) then 352 if not HaveQuestData(questID) then
349 self.isPending = true 353 self.isPending = true
350 else 354 else
466 end 470 end
467 471
468 self:ShowFrames() 472 self:ShowFrames()
469 end 473 end
470 474
471 475 -- Show/Hide the text overlays associated with the quest pin; they aren't hierarchically linked
472 function QuestPOI:ShowFrames() 476 function QuestPOI:ShowFrames()
473 if not self:IsShown() then 477 if not self:IsShown() then
474 --self:SetShown(true)
475 print('|cFFFFFF00' ..self:GetName()..':ShowFrames()') 478 print('|cFFFFFF00' ..self:GetName()..':ShowFrames()')
476 qprint('|cFFFFFF00'..tostring(self:GetName())..':OnShow()|r update:', self.isStale, 'new:', self.isNew, 'animation:', self.isAnimating) 479 -- do not SetShown() here
477 else 480 end
478 481
479 --print(self:GetName()..':ShowFrames()')
480 end
481 self.count:SetShown(true) 482 self.count:SetShown(true)
482 self.Overlay:SetShown(true) 483 self.Overlay:SetShown(true)
483 self.count:SetShown(true) 484 self.count:SetShown(true)
484 self.timeLabel:SetShown(true) 485 self.timeLabel:SetShown(true)
485 end 486 end
509 self.itemName = '|cFF0088FF' .. RETRIEVING_DATA..'|r' 510 self.itemName = '|cFF0088FF' .. RETRIEVING_DATA..'|r'
510 511
511 self.Overlay:SetPoint('TOPLEFT', self, 'TOPLEFT', 0, 4) 512 self.Overlay:SetPoint('TOPLEFT', self, 'TOPLEFT', 0, 4)
512 self.Overlay:SetPoint('BOTTOMRIGHT', self, 'BOTTOMRIGHT', 0, -4) 513 self.Overlay:SetPoint('BOTTOMRIGHT', self, 'BOTTOMRIGHT', 0, -4)
513 end 514 end
515
514 function QuestPOI:OnMouseDown(button) 516 function QuestPOI:OnMouseDown(button)
515 if button == 'RightButton' then 517 if button == 'RightButton' then
516 SetSuperTrackedQuestID(nil) 518 SetSuperTrackedQuestID(nil)
517 else 519 else
518 TaskPOI_OnClick(self, button) 520 TaskPOI_OnClick(self, button)
563 end 565 end
564 566
565 -- Called at static intervals and with Refresh 567 -- Called at static intervals and with Refresh
566 function QuestPOI:UpdateStatus() 568 function QuestPOI:UpdateStatus()
567 -- update time elements 569 -- update time elements
568 if TQ_IsActive(self.questID) then 570 self.isActive = TQ_IsActive(self.questID)
571
572 if self.isActive then
569 local tl = self.alertLevel 573 local tl = self.alertLevel
570 local timeLeft = TQ_GetQuestTimeLeftMinutes(self.questID) 574 local timeLeft = TQ_GetQuestTimeLeftMinutes(self.questID)
571 if timeLeft > 0 then 575 if timeLeft > 0 then
572 576
573 local text, timeState = WorldPlan:GetTimeInfo(timeLeft, self.maxAlertLevel) 577 local text, timeState = WorldPlan:GetTimeInfo(timeLeft, self.maxAlertLevel)
591 self.alertLevel = tl 595 self.alertLevel = tl
592 self.timeLabel:SetShown(self.worldQuest and (self.maxAlertLevel >= 1)) 596 self.timeLabel:SetShown(self.worldQuest and (self.maxAlertLevel >= 1))
593 else 597 else
594 if not self.completed then 598 if not self.completed then
595 self.completed = true 599 self.completed = true
596 WorldPlan:print('|cFFFFFF00'..tostring(self.title).. '|r is no longer active.')
597 self:HideFrames() 600 self:HideFrames()
598 end 601 end
599 end 602 end
600 end 603 end
601 604
700 [REWARD_ARTIFACT_POWER] = 'worldQuestFilterArtifactPower', 703 [REWARD_ARTIFACT_POWER] = 'worldQuestFilterArtifactPower',
701 [REWARD_CURRENCY] = 'worldQuestFilterOrderResources', 704 [REWARD_CURRENCY] = 'worldQuestFilterOrderResources',
702 [REWARD_REAGENT]= 'worldQuestFilterProfessionMaterials', 705 [REWARD_REAGENT]= 'worldQuestFilterProfessionMaterials',
703 [REWARD_GEAR] = 'worldQuestFilterEquipment', 706 [REWARD_GEAR] = 'worldQuestFilterEquipment',
704 } 707 }
708
709
705 710
706 function QuestPOI:CheckFilterRules () 711 function QuestPOI:CheckFilterRules ()
707 local print = qprint 712 local print = qprint
708 local qType = self.worldQuestType 713 local qType = self.worldQuestType
709 local filtered 714 local filtered