Mercurial > wow > worldplan
comparison QuestPOI.lua @ 78:fadf00b437fb v1.4.1
- Fixed pins not being removed upon completion
- Fixed animation stuttering
author | Nenue |
---|---|
date | Mon, 10 Apr 2017 13:14:05 -0400 |
parents | 78d78dc77822 |
children | 26d736fbfe67 |
comparison
equal
deleted
inserted
replaced
77:d55ceee94714 | 78:fadf00b437fb |
---|---|
257 if self.filtered and (self.questID ~= GetSuperTrackedQuestID()) then | 257 if self.filtered and (self.questID ~= GetSuperTrackedQuestID()) then |
258 return | 258 return |
259 end | 259 end |
260 WorldMap_HijackTooltip(self.owningFrame); | 260 WorldMap_HijackTooltip(self.owningFrame); |
261 self:SetFrameLevel(pinBaseIndex+100) | 261 self:SetFrameLevel(pinBaseIndex+100) |
262 self.Overlay:SetFrameLevel(pinBaseIndex+101) | 262 self.Overlay:SetFrameLevel(overlayBaseIndex+100) |
263 | 263 |
264 if previousHighlight then | 264 if previousHighlight then |
265 previousHighlight:SetFrameLevel(pinBaseIndex+previousHighlight:GetID()) | 265 previousHighlight:SetFrameLevel(pinBaseIndex+previousHighlight:GetID()) |
266 previousHighlight.Overlay:SetFrameLevel(overlayBaseIndex+previousHighlight:GetID()) | 266 previousHighlight.Overlay:SetFrameLevel(overlayBaseIndex+previousHighlight:GetID()) |
267 end | 267 end |
571 | 571 |
572 -- run from OnShow if .isNew is set | 572 -- run from OnShow if .isNew is set |
573 | 573 |
574 function QuestPOI:OnAnimStart() | 574 function QuestPOI:OnAnimStart() |
575 --qprint('|cFFFFFF00OnAnimStart(|r'..self:GetID()..'|cFFFFFF00)|r', self.fadeEvent) | 575 --qprint('|cFFFFFF00OnAnimStart(|r'..self:GetID()..'|cFFFFFF00)|r', self.fadeEvent) |
576 self.isAnimating = true | 576 self:Refresh('FADE_IN_START') |
577 self.isNew = nil | 577 self.isNew = nil |
578 end | 578 end |
579 | 579 |
580 function QuestPOI:TryToFade(event) | 580 function QuestPOI:TryToFade(event) |
581 if self.FadeIn:IsPlaying() then | 581 if self.FadeIn:IsPlaying() then |
585 | 585 |
586 self.fadeEvent = event | 586 self.fadeEvent = event |
587 if self.dataLoaded then | 587 if self.dataLoaded then |
588 --qprint('|cFFFFFF00TryToFade('..self:GetID()..'|cFFFFFF00)|r', event) | 588 --qprint('|cFFFFFF00TryToFade('..self:GetID()..'|cFFFFFF00)|r', event) |
589 self:SetAlpha(0) | 589 self:SetAlpha(0) |
590 self:Refresh(event) | |
591 self.FadeIn.FadeIn:SetToAlpha(db.PinAlpha) | 590 self.FadeIn.FadeIn:SetToAlpha(db.PinAlpha) |
592 self.isStale = true | |
593 self.FadeIn:Play() | 591 self.FadeIn:Play() |
594 else | 592 else |
595 | 593 |
596 --qprint('|cFFFF4400TryToFade('..self:GetID()..'|cFFFF4400)|r stopping because not loaded') | 594 --qprint('|cFFFF4400TryToFade('..self:GetID()..'|cFFFF4400)|r stopping because not loaded') |
597 end | 595 end |
598 end | 596 end |
599 | 597 |
600 function QuestPOI:OnAnimStop() | 598 function QuestPOI:OnAnimStop() |
601 self.isAnimating = nil | |
602 self:SetAlpha(db.PinAlpha) | 599 self:SetAlpha(db.PinAlpha) |
603 end | 600 end |
604 | 601 |
605 function QuestPOI:OnShow () | 602 function QuestPOI:OnShow () |
606 | 603 |
607 if self.isNew then | 604 if self.isNew then |
608 self:TryToFade('POI_ONSHOW_NEW') | 605 self:TryToFade('POI_ONSHOW_NEW') |
609 else | 606 elseif not self.FadeIn:IsPlaying() then |
610 if not self.isAnimating then | 607 print('|cFF00FF00Alpha correction') |
611 --print('|cFF00FF00Alpha correction') | 608 self:SetAlpha(db.PinAlpha) -- fix stuck alpha |
612 self:SetAlpha(db.PinAlpha) -- fix stuck alpha | |
613 end | |
614 if self.isStale then | 609 if self.isStale then |
615 --print('|cFF00FF00refresh on show') | 610 --print('|cFF00FF00refresh on show') |
616 self:Refresh('POI_ONSHOW_STALE') | 611 self:Refresh('POI_ONSHOW_STALE') |
617 end | 612 end |
618 end | 613 end |
614 self:RegisterEvent('QUEST_LOG_UPDATE') | |
619 self:ShowFrames() | 615 self:ShowFrames() |
616 end | |
617 | |
618 function QuestPOI:OnEvent(event) | |
619 if not TQ_IsActive(self.questID) then | |
620 | |
621 self:UnregisterEvent('QUEST_LOG_UPDATE') | |
622 | |
623 self.hideReason = 'Hiding self because quest is inactive.' | |
624 self:SetShown(false) | |
625 end | |
620 end | 626 end |
621 | 627 |
622 function QuestPOI:OnHide() | 628 function QuestPOI:OnHide() |
623 --DEFAULT_CHAT_FRAME:AddMessage('|cFFFFFF00'..self:GetName()..'|r:OnHide()') | 629 --DEFAULT_CHAT_FRAME:AddMessage('|cFFFFFF00'..self:GetName()..'|r:OnHide()') |
624 self:HideFrames() | 630 self:HideFrames() |
642 | 648 |
643 | 649 |
644 if owner then | 650 if owner then |
645 self:SetParent(owner) | 651 self:SetParent(owner) |
646 self.Overlay:SetParent(owner) | 652 self.Overlay:SetParent(owner) |
653 self:SetFrameStrata('HIGH') | |
654 self:SetFrameLevel(pinBaseIndex + self:GetID()) | |
655 self.Overlay:SetFrameStrata('HIGH') | |
656 self.Overlay:SetFrameLevel(overlayBaseIndex + self:GetID()) | |
647 self.isStale = true | 657 self.isStale = true |
648 else | 658 else |
649 owner = self:GetParent() | 659 owner = self:GetParent() |
650 end | 660 end |
651 | 661 |
764 self:UpdateStatus() | 774 self:UpdateStatus() |
765 end | 775 end |
766 | 776 |
767 end | 777 end |
768 | 778 |
779 -- Non-hieriarchical display states, checked separately from used/filtered states | |
769 function QuestPOI:GetCriteriaState() | 780 function QuestPOI:GetCriteriaState() |
770 local isCriteria, isBounty, isSpellTarget | 781 local isCriteria, isBounty, isSpellTarget |
771 if self.factionID then | 782 if self.factionID then |
772 for index, bounty in pairs(db.Bounties) do | 783 for index, bounty in pairs(db.Bounties) do |
773 if IsQuestCriteriaForBounty(self.questID, bounty.questID) then | 784 if IsQuestCriteriaForBounty(self.questID, bounty.questID) then |
979 | 990 |
980 | 991 |
981 function QuestPOI:CheckFilterRules () | 992 function QuestPOI:CheckFilterRules () |
982 local print = qprint | 993 local print = qprint |
983 local qType = self.worldQuestType | 994 local qType = self.worldQuestType |
984 local filtered | 995 if not TQ_IsActive(self.questID) then |
985 local canShow = TQ_IsActive(self.questID) | 996 self.hideReason = 'Filter check ended because quest is inactive.' |
986 | 997 self.used = nil |
998 self:SetShown(false) | |
999 return | |
1000 end | |
987 | 1001 |
988 if qType == LE_QUEST_TAG_TYPE_PROFESSION then | 1002 if qType == LE_QUEST_TAG_TYPE_PROFESSION then |
989 if not(self.isKnownProfession or db.Config.ShowAllProfessionQuests) then | 1003 if not(self.isKnownProfession or db.Config.ShowAllProfessionQuests) then |
990 canShow = nil | 1004 self.hideReason = 'Failed profession check.' |
991 end | 1005 self.used = nil |
992 end | 1006 self:SetShown(false) |
993 if canShow then | 1007 return |
994 for filterKey, value in pairs(db.UsedFilters) do | 1008 end |
995 if self[filterKey] ~= value then | 1009 end |
996 if not self.filtered then | 1010 |
997 print('|cFFFF4400filtering', filterKey, value, '~=', self[filterKey], self.title) | 1011 local filtered |
998 end | 1012 for filterKey, value in pairs(db.UsedFilters) do |
999 | 1013 if self[filterKey] ~= value then |
1000 filtered = true | 1014 if not self.filtered then |
1001 end | 1015 print('|cFFFF4400filtering', filterKey, value, '~=', self[filterKey], self.title) |
1002 end | 1016 end |
1003 if self.rewardType and cvar_check[self.rewardType] then | 1017 filtered = true |
1004 if not GetCVarBool(cvar_check[self.rewardType]) then | 1018 end |
1005 filtered = true | 1019 end |
1006 end | 1020 if self.rewardType and cvar_check[self.rewardType] then |
1007 end | 1021 if not GetCVarBool(cvar_check[self.rewardType]) then |
1008 if canShow and self.filtered ~= filtered then | 1022 filtered = true |
1009 self.isStale = true | 1023 end |
1010 print(' '..self.questID..':|cFFFFFF00CheckFilterRules()|r ', canShow, filtered, self.title) | 1024 end |
1011 end | 1025 |
1012 self.filtered = filtered | 1026 print(' '..self.questID..':|cFFFFFF00CheckFilterRules()|r', filtered, self.title) |
1013 end | 1027 if self.filtered ~= filtered then |
1014 self.used = canShow | 1028 self.isStale = true |
1015 if not canShow then | 1029 end |
1016 self.hideReason = "Failed filter check." | 1030 |
1017 end | 1031 self.used = true |
1018 self:SetShown(canShow) | 1032 self:SetShown(true) |
1019 end | 1033 end |
1020 | 1034 |
1021 --- Fixes icons upon size update | 1035 --- Fixes icons upon size update |
1022 function QuestPOI:UpdateSize () | 1036 function QuestPOI:UpdateSize () |
1023 | 1037 |