comparison FlightMap.lua @ 49:dbd81d49af02

- Solve more frame data flagging issues - Unify method for resolving filter and visibility states - Flight Map modifications respect filter settings - Solve initial draw issues with tag icon, filter state handling - Solve issues with text layer synchronization during map changes
author Nenue
date Thu, 29 Dec 2016 13:31:20 -0500
parents 589c444d4837
children 6439015d74b1
comparison
equal deleted inserted replaced
48:c0b88bd1e40b 49:dbd81d49af02
89 89
90 if taskInfo then 90 if taskInfo then
91 for i, info in ipairs(taskInfo) do 91 for i, info in ipairs(taskInfo) do
92 if HaveQuestData(info.questId) then 92 if HaveQuestData(info.questId) then
93 if QuestUtils_IsQuestWorldQuest(info.questId) then 93 if QuestUtils_IsQuestWorldQuest(info.questId) then
94 local pin = db.QuestsByID[info.questId] 94 local pin = WorldPlanQuests:AcquirePin(info, zoneMapID)
95 if not db.QuestsByID[info.questId] then 95 if pin then
96 pin = WorldPlanQuests:AcquirePin(info, zoneMapID) 96
97 print(pin:GetID(), pin.used, pin.filtered)
98
99 if pin.used then
100 print(i, pin.x, pin.y, pin.used, pin.isNew, pin.isStale, pin:IsShown(), pin:GetAlpha())
101 pinsToRemove[info.questId] = nil;
102
103 local frame = self.activePins[info.questId]
104 if not frame then
105 frame = self:GetMap():AcquirePin("WorldPlanFlightPin")
106 print(alpha1, alpha2, alpha3)
107 print(scale1, scale2, scale3)
108 frame:SetAlphaLimits(alpha1, alpha2, alpha3)
109 frame:SetScalingLimits(scale1, scale2, scale3);
110 frame:SetFrameLevel(1000 + self:GetMap():GetNumActivePinsByTemplate("WorldPlanFlightPin"));
111 frame:Show()
112 self.activePins[info.questId] = frame
113 end
114 frame:SetPosition(info.x, info.y)
115 frame.pin = pin
116
117 pin.owningFrame = frame:GetMap()
118 pin.throttle = 1
119 pin.isStale = true
120
121 pin:SetParent(frame)
122 pin:ClearAllPoints()
123 pin:SetPoint('CENTER', frame, 'CENTER')
124 end
125 pin:SetShown(pin.used)
97 end 126 end
98 127
99 pin:IsShowable()
100 if pin.used then
101 print(i, pin.x, pin.y, pin.used, pin.isNew, pin.isStale, pin:IsShown(), pin:GetAlpha())
102 pinsToRemove[info.questId] = nil;
103
104 local frame = self.activePins[info.questId]
105 if not frame then
106 frame = self:GetMap():AcquirePin("WorldPlanFlightPin")
107 print(alpha1, alpha2, alpha3)
108 print(scale1, scale2, scale3)
109 frame:SetAlphaLimits(alpha1, alpha2, alpha3)
110 frame:SetScalingLimits(scale1, scale2, scale3);
111 frame:SetFrameLevel(1000 + self:GetMap():GetNumActivePinsByTemplate("WorldPlanFlightPin"));
112 frame:Show()
113 self.activePins[info.questId] = frame
114 end
115 frame:SetPosition(info.x, info.y)
116 frame.pin = pin
117
118 pin.owningFrame = frame:GetMap()
119 pin.isStale = true
120 pin:SetParent(frame)
121 pin:ClearAllPoints()
122 pin:SetPoint('CENTER', frame, 'CENTER')
123
124 end
125 pin:SetShown(pin.used)
126 end 128 end
127 end 129 end
128 end 130 end
129 end 131 end
130 end 132 end
138 for pin in self:GetMap():EnumeratePinsByTemplate("WorldQuestPinTemplate") do 140 for pin in self:GetMap():EnumeratePinsByTemplate("WorldQuestPinTemplate") do
139 pin:Hide() 141 pin:Hide()
140 end 142 end
141 143
142 end 144 end
145
146
147
143 function WorldPlanDataProvider:OnEvent() 148 function WorldPlanDataProvider:OnEvent()
149 end
150
151 function WorldPlanDataPinMixin:OnLoad()
152 self.UpdateTooltip = self.OnMouseEnter;
153
154 -- Flight points can nudge world quests.
155 self:SetNudgeTargetFactor(0.015);
156 self:SetNudgeZoomedOutFactor(1.0);
157 self:SetNudgeZoomedInFactor(0.25);
144 end 158 end
145 159
146 function WorldPlanDataPinMixin:OnShow() 160 function WorldPlanDataPinMixin:OnShow()
147 end 161 end
148 162