diff 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
line wrap: on
line diff
--- a/FlightMap.lua	Tue Dec 27 19:46:40 2016 -0500
+++ b/FlightMap.lua	Thu Dec 29 13:31:20 2016 -0500
@@ -91,38 +91,40 @@
       for i, info in ipairs(taskInfo) do
         if HaveQuestData(info.questId) then
           if QuestUtils_IsQuestWorldQuest(info.questId) then
-            local pin = db.QuestsByID[info.questId]
-            if not db.QuestsByID[info.questId] then
-              pin = WorldPlanQuests:AcquirePin(info, zoneMapID)
+            local pin = WorldPlanQuests:AcquirePin(info, zoneMapID)
+            if pin then
+
+              print(pin:GetID(), pin.used, pin.filtered)
+
+              if pin.used then
+                print(i, pin.x, pin.y, pin.used, pin.isNew, pin.isStale, pin:IsShown(), pin:GetAlpha())
+                pinsToRemove[info.questId] = nil;
+
+                local frame = self.activePins[info.questId]
+                if not frame then
+                  frame = self:GetMap():AcquirePin("WorldPlanFlightPin")
+                  print(alpha1, alpha2, alpha3)
+                  print(scale1, scale2, scale3)
+                  frame:SetAlphaLimits(alpha1, alpha2, alpha3)
+                  frame:SetScalingLimits(scale1, scale2, scale3);
+                  frame:SetFrameLevel(1000 + self:GetMap():GetNumActivePinsByTemplate("WorldPlanFlightPin"));
+                  frame:Show()
+                  self.activePins[info.questId] = frame
+                end
+                frame:SetPosition(info.x, info.y)
+                frame.pin = pin
+
+                pin.owningFrame = frame:GetMap()
+                pin.throttle = 1
+                pin.isStale = true
+
+                pin:SetParent(frame)
+                pin:ClearAllPoints()
+                pin:SetPoint('CENTER', frame, 'CENTER')
+              end
+              pin:SetShown(pin.used)
             end
 
-            pin:IsShowable()
-            if pin.used then
-              print(i, pin.x, pin.y, pin.used, pin.isNew, pin.isStale, pin:IsShown(), pin:GetAlpha())
-              pinsToRemove[info.questId] = nil;
-
-              local frame = self.activePins[info.questId]
-              if not frame then
-                frame = self:GetMap():AcquirePin("WorldPlanFlightPin")
-                print(alpha1, alpha2, alpha3)
-                print(scale1, scale2, scale3)
-                frame:SetAlphaLimits(alpha1, alpha2, alpha3)
-                frame:SetScalingLimits(scale1, scale2, scale3);
-                frame:SetFrameLevel(1000 + self:GetMap():GetNumActivePinsByTemplate("WorldPlanFlightPin"));
-                frame:Show()
-                self.activePins[info.questId] = frame
-              end
-              frame:SetPosition(info.x, info.y)
-              frame.pin = pin
-
-              pin.owningFrame = frame:GetMap()
-              pin.isStale = true
-              pin:SetParent(frame)
-              pin:ClearAllPoints()
-              pin:SetPoint('CENTER', frame, 'CENTER')
-
-            end
-            pin:SetShown(pin.used)
           end
         end
       end
@@ -140,9 +142,21 @@
   end
 
 end
+
+
+
 function WorldPlanDataProvider:OnEvent()
 end
 
+function WorldPlanDataPinMixin:OnLoad()
+  self.UpdateTooltip = self.OnMouseEnter;
+
+  -- Flight points can nudge world quests.
+  self:SetNudgeTargetFactor(0.015);
+  self:SetNudgeZoomedOutFactor(1.0);
+  self:SetNudgeZoomedInFactor(0.25);
+end
+
 function WorldPlanDataPinMixin:OnShow()
 end