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 |
