diff FlightMap.lua @ 40:589c444d4837

WowAce/Curseforge migration push
author Nenue
date Sun, 25 Dec 2016 13:04:57 -0500
parents a93cae445d3f
children dbd81d49af02
line wrap: on
line diff
--- a/FlightMap.lua	Fri Nov 04 02:54:32 2016 -0400
+++ b/FlightMap.lua	Sun Dec 25 13:04:57 2016 -0500
@@ -1,4 +1,4 @@
-
+local _, db = ...
 local print = DEVIAN_WORKSPACE and function(...) _G.print('Canvas', ...) end or function() end
 local wprint = DEVIAN_WORKSPACE and function(...) _G.print('WP', ...) end or function() end
 local wipe, pairs, ipairs = wipe, pairs, ipairs
@@ -36,6 +36,13 @@
   end
 end
 
+function WorldPlanDataProvider:OnLoad()
+
+  self:SetNudgeTargetFactor(0.015);
+  self:SetNudgeZoomedOutFactor(1.0);
+  self:SetNudgeZoomedInFactor(0.25);
+end
+
 function WorldPlanDataProvider:OnShow()
   assert(self.ticker == nil);
   self.ticker = C_Timer.NewTicker(10, function() self:RefreshAllData() end);
@@ -69,7 +76,9 @@
   for questId in pairs(self.activePins) do
     pinsToRemove[questId] = true;
   end
-
+  print(unpack(db.Config.FlightMapAlphaLimits))
+  local alpha1, alpha2, alpha3 = unpack(db.Config.FlightMapAlphaLimits)
+  local scale1, scale2, scale3 = unpack(db.Config.FlightMapScalingLimits)
 
   local mapAreaID = self:GetMap():GetMapID();
   for zoneIndex = 1, C_MapCanvas.GetNumZones(mapAreaID) do
@@ -82,8 +91,11 @@
       for i, info in ipairs(taskInfo) do
         if HaveQuestData(info.questId) then
           if QuestUtils_IsQuestWorldQuest(info.questId) then
-            local pin = WorldPlanQuests:AcquirePin(info.questId, zoneMapID)
-            pin:RefreshData(info)
+            local pin = db.QuestsByID[info.questId]
+            if not db.QuestsByID[info.questId] then
+              pin = WorldPlanQuests:AcquirePin(info, zoneMapID)
+            end
+
             pin:IsShowable()
             if pin.used then
               print(i, pin.x, pin.y, pin.used, pin.isNew, pin.isStale, pin:IsShown(), pin:GetAlpha())
@@ -92,8 +104,10 @@
               local frame = self.activePins[info.questId]
               if not frame then
                 frame = self:GetMap():AcquirePin("WorldPlanFlightPin")
-                frame:SetAlphaLimits(1, 0.7, 1)
-                frame:SetScalingLimits(1, 3, 1.5);
+                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
@@ -101,7 +115,7 @@
               frame:SetPosition(info.x, info.y)
               frame.pin = pin
 
-              pin.owningFrame = self:GetMap()
+              pin.owningFrame = frame:GetMap()
               pin.isStale = true
               pin:SetParent(frame)
               pin:ClearAllPoints()
@@ -127,21 +141,15 @@
 
 end
 function WorldPlanDataProvider:OnEvent()
-  for pin in self:GetMap():EnumeratePinsByTemplate("WorldQuestPinTemplate") do
-    pin:Hide()
-  end
 end
 
 function WorldPlanDataPinMixin:OnShow()
-  print('|cFFFFFF00'..tostring(self:GetName())..':OnShow()|r')
 end
 
 function WorldPlanDataPinMixin:OnMouseEnter ()
-
 end
 
 function WorldPlanDataPinMixin:OnMouseLeave ()
-
 end
 
 function WorldPlanDataPinMixin:RemoveAllData()