comparison FlightMap.lua @ 40:589c444d4837

WowAce/Curseforge migration push
author Nenue
date Sun, 25 Dec 2016 13:04:57 -0500
parents a93cae445d3f
children dbd81d49af02
comparison
equal deleted inserted replaced
39:89ddef0594bc 40:589c444d4837
1 1 local _, db = ...
2 local print = DEVIAN_WORKSPACE and function(...) _G.print('Canvas', ...) end or function() end 2 local print = DEVIAN_WORKSPACE and function(...) _G.print('Canvas', ...) end or function() end
3 local wprint = DEVIAN_WORKSPACE and function(...) _G.print('WP', ...) end or function() end 3 local wprint = DEVIAN_WORKSPACE and function(...) _G.print('WP', ...) end or function() end
4 local wipe, pairs, ipairs = wipe, pairs, ipairs 4 local wipe, pairs, ipairs = wipe, pairs, ipairs
5 local HaveQuestData, QuestUtils_IsQuestWorldQuest, C_MapCanvas, C_TaskQuest = HaveQuestData, QuestUtils_IsQuestWorldQuest, C_MapCanvas, C_TaskQuest 5 local HaveQuestData, QuestUtils_IsQuestWorldQuest, C_MapCanvas, C_TaskQuest = HaveQuestData, QuestUtils_IsQuestWorldQuest, C_MapCanvas, C_TaskQuest
6 6
34 local func = tremove(self.TaskQueue, 1) 34 local func = tremove(self.TaskQueue, 1)
35 func() 35 func()
36 end 36 end
37 end 37 end
38 38
39 function WorldPlanDataProvider:OnLoad()
40
41 self:SetNudgeTargetFactor(0.015);
42 self:SetNudgeZoomedOutFactor(1.0);
43 self:SetNudgeZoomedInFactor(0.25);
44 end
45
39 function WorldPlanDataProvider:OnShow() 46 function WorldPlanDataProvider:OnShow()
40 assert(self.ticker == nil); 47 assert(self.ticker == nil);
41 self.ticker = C_Timer.NewTicker(10, function() self:RefreshAllData() end); 48 self.ticker = C_Timer.NewTicker(10, function() self:RefreshAllData() end);
42 end 49 end
43 function WorldPlanDataProvider:OnHide() 50 function WorldPlanDataProvider:OnHide()
67 74
68 local pinsToRemove = {}; 75 local pinsToRemove = {};
69 for questId in pairs(self.activePins) do 76 for questId in pairs(self.activePins) do
70 pinsToRemove[questId] = true; 77 pinsToRemove[questId] = true;
71 end 78 end
72 79 print(unpack(db.Config.FlightMapAlphaLimits))
80 local alpha1, alpha2, alpha3 = unpack(db.Config.FlightMapAlphaLimits)
81 local scale1, scale2, scale3 = unpack(db.Config.FlightMapScalingLimits)
73 82
74 local mapAreaID = self:GetMap():GetMapID(); 83 local mapAreaID = self:GetMap():GetMapID();
75 for zoneIndex = 1, C_MapCanvas.GetNumZones(mapAreaID) do 84 for zoneIndex = 1, C_MapCanvas.GetNumZones(mapAreaID) do
76 local zoneMapID, zoneName, zoneDepth, left, right, top, bottom = C_MapCanvas.GetZoneInfo(mapAreaID, zoneIndex); 85 local zoneMapID, zoneName, zoneDepth, left, right, top, bottom = C_MapCanvas.GetZoneInfo(mapAreaID, zoneIndex);
77 print(zoneMapID, zoneName) 86 print(zoneMapID, zoneName)
80 89
81 if taskInfo then 90 if taskInfo then
82 for i, info in ipairs(taskInfo) do 91 for i, info in ipairs(taskInfo) do
83 if HaveQuestData(info.questId) then 92 if HaveQuestData(info.questId) then
84 if QuestUtils_IsQuestWorldQuest(info.questId) then 93 if QuestUtils_IsQuestWorldQuest(info.questId) then
85 local pin = WorldPlanQuests:AcquirePin(info.questId, zoneMapID) 94 local pin = db.QuestsByID[info.questId]
86 pin:RefreshData(info) 95 if not db.QuestsByID[info.questId] then
96 pin = WorldPlanQuests:AcquirePin(info, zoneMapID)
97 end
98
87 pin:IsShowable() 99 pin:IsShowable()
88 if pin.used then 100 if pin.used then
89 print(i, pin.x, pin.y, pin.used, pin.isNew, pin.isStale, pin:IsShown(), pin:GetAlpha()) 101 print(i, pin.x, pin.y, pin.used, pin.isNew, pin.isStale, pin:IsShown(), pin:GetAlpha())
90 pinsToRemove[info.questId] = nil; 102 pinsToRemove[info.questId] = nil;
91 103
92 local frame = self.activePins[info.questId] 104 local frame = self.activePins[info.questId]
93 if not frame then 105 if not frame then
94 frame = self:GetMap():AcquirePin("WorldPlanFlightPin") 106 frame = self:GetMap():AcquirePin("WorldPlanFlightPin")
95 frame:SetAlphaLimits(1, 0.7, 1) 107 print(alpha1, alpha2, alpha3)
96 frame:SetScalingLimits(1, 3, 1.5); 108 print(scale1, scale2, scale3)
109 frame:SetAlphaLimits(alpha1, alpha2, alpha3)
110 frame:SetScalingLimits(scale1, scale2, scale3);
97 frame:SetFrameLevel(1000 + self:GetMap():GetNumActivePinsByTemplate("WorldPlanFlightPin")); 111 frame:SetFrameLevel(1000 + self:GetMap():GetNumActivePinsByTemplate("WorldPlanFlightPin"));
98 frame:Show() 112 frame:Show()
99 self.activePins[info.questId] = frame 113 self.activePins[info.questId] = frame
100 end 114 end
101 frame:SetPosition(info.x, info.y) 115 frame:SetPosition(info.x, info.y)
102 frame.pin = pin 116 frame.pin = pin
103 117
104 pin.owningFrame = self:GetMap() 118 pin.owningFrame = frame:GetMap()
105 pin.isStale = true 119 pin.isStale = true
106 pin:SetParent(frame) 120 pin:SetParent(frame)
107 pin:ClearAllPoints() 121 pin:ClearAllPoints()
108 pin:SetPoint('CENTER', frame, 'CENTER') 122 pin:SetPoint('CENTER', frame, 'CENTER')
109 123
125 pin:Hide() 139 pin:Hide()
126 end 140 end
127 141
128 end 142 end
129 function WorldPlanDataProvider:OnEvent() 143 function WorldPlanDataProvider:OnEvent()
130 for pin in self:GetMap():EnumeratePinsByTemplate("WorldQuestPinTemplate") do
131 pin:Hide()
132 end
133 end 144 end
134 145
135 function WorldPlanDataPinMixin:OnShow() 146 function WorldPlanDataPinMixin:OnShow()
136 print('|cFFFFFF00'..tostring(self:GetName())..':OnShow()|r')
137 end 147 end
138 148
139 function WorldPlanDataPinMixin:OnMouseEnter () 149 function WorldPlanDataPinMixin:OnMouseEnter ()
140
141 end 150 end
142 151
143 function WorldPlanDataPinMixin:OnMouseLeave () 152 function WorldPlanDataPinMixin:OnMouseLeave ()
144
145 end 153 end
146 154
147 function WorldPlanDataPinMixin:RemoveAllData() 155 function WorldPlanDataPinMixin:RemoveAllData()
148 wipe(self.activePins); 156 wipe(self.activePins);
149 self:GetMap():RemoveAllPinsByTemplate("WorldPlanFlightPin"); 157 self:GetMap():RemoveAllPinsByTemplate("WorldPlanFlightPin");