Mercurial > wow > worldplan
comparison FlightMap.lua @ 37:78cf1f19856a
WorldPlan:
- Quest pins are now placed on the flight map. Their visibility rules will mirror the filter options from the world map.
- Filter controls polish:
- First click negates other reward type filters. Subsequent clicks will then toggle individual reward types until the filters are reset via Right-click.
- Adheres to the Blizzard CVars added in patch 7.1
- Numerous optimizations to how data and visual updates are handled; should see an even better load time, and snappier world map interaction.
ClassPlan:
- The 'Available Missions' list is now recorded. It can be reviewed by clicking on the mission list heading.
- Information filtering by character and realm.
| author | Nenue |
|---|---|
| date | Fri, 04 Nov 2016 02:47:17 -0400 |
| parents | 21bcff08b0f4 |
| children | a93cae445d3f |
comparison
equal
deleted
inserted
replaced
| 36:21bcff08b0f4 | 37:78cf1f19856a |
|---|---|
| 46 end | 46 end |
| 47 | 47 |
| 48 function WorldPlanDataProvider:OnAdded(mapCanvas) | 48 function WorldPlanDataProvider:OnAdded(mapCanvas) |
| 49 self.activePins = {}; | 49 self.activePins = {}; |
| 50 self.owningMap = mapCanvas | 50 self.owningMap = mapCanvas |
| 51 self:RegisterEvent('QUEST_LOG_UPDATE') | |
| 52 | |
| 53 -- remove the the blizzard data provider | |
| 54 for frame in pairs(FlightMapFrame.dataProviders) do | |
| 55 if frame.OnAdded == WorldQuestDataProviderMixin.OnAdded then | |
| 56 FlightMapFrame:RemoveDataProvider(frame) | |
| 57 break | |
| 58 end | |
| 59 end | |
| 51 end | 60 end |
| 52 | 61 |
| 53 | 62 |
| 54 function WorldPlanDataProvider:RefreshAllData() | 63 function WorldPlanDataProvider:RefreshAllData() |
| 55 local print = print | 64 local print = print |
| 90 self.activePins[info.questId] = frame | 99 self.activePins[info.questId] = frame |
| 91 end | 100 end |
| 92 frame:SetPosition(info.x, info.y) | 101 frame:SetPosition(info.x, info.y) |
| 93 frame.pin = pin | 102 frame.pin = pin |
| 94 | 103 |
| 104 pin.owningFrame = self:GetMap() | |
| 95 pin.isStale = true | 105 pin.isStale = true |
| 96 pin:SetParent(frame) | 106 pin:SetParent(frame) |
| 97 pin:ClearAllPoints() | 107 pin:ClearAllPoints() |
| 98 pin:SetPoint('CENTER', frame, 'CENTER') | 108 pin:SetPoint('CENTER', frame, 'CENTER') |
| 99 | 109 |
| 109 for questId in pairs(pinsToRemove) do | 119 for questId in pairs(pinsToRemove) do |
| 110 self:GetMap():RemovePin(self.activePins[questId]); | 120 self:GetMap():RemovePin(self.activePins[questId]); |
| 111 self.activePins[questId] = nil; | 121 self.activePins[questId] = nil; |
| 112 end | 122 end |
| 113 --self:GetMap():RemoveAllPinsByTemplate("WorldQuestPinTemplate"); | 123 --self:GetMap():RemoveAllPinsByTemplate("WorldQuestPinTemplate"); |
| 124 for pin in self:GetMap():EnumeratePinsByTemplate("WorldQuestPinTemplate") do | |
| 125 pin:Hide() | |
| 126 end | |
| 114 | 127 |
| 128 end | |
| 129 function WorldPlanDataProvider:OnEvent() | |
| 130 for pin in self:GetMap():EnumeratePinsByTemplate("WorldQuestPinTemplate") do | |
| 131 pin:Hide() | |
| 132 end | |
| 115 end | 133 end |
| 116 | 134 |
| 117 function WorldPlanDataPinMixin:OnShow() | 135 function WorldPlanDataPinMixin:OnShow() |
| 118 print('|cFFFFFF00'..tostring(self:GetName())..':OnShow()|r') | 136 print('|cFFFFFF00'..tostring(self:GetName())..':OnShow()|r') |
| 119 end | 137 end |
| 120 | 138 |
| 121 function WorldPlanDataPinMixin:OnMouseEnter () | 139 function WorldPlanDataPinMixin:OnMouseEnter () |
| 122 self.pin:OnEnter() | 140 |
| 123 end | 141 end |
| 124 | 142 |
| 125 function WorldPlanDataPinMixin:OnMouseLeave () | 143 function WorldPlanDataPinMixin:OnMouseLeave () |
| 126 self.pin:OnLeave() | 144 |
| 127 end | 145 end |
| 128 | 146 |
| 129 function WorldPlanDataPinMixin:RemoveAllData() | 147 function WorldPlanDataPinMixin:RemoveAllData() |
| 130 wipe(self.activePins); | 148 wipe(self.activePins); |
| 131 self:GetMap():RemoveAllPinsByTemplate("WorldPlanFlightPin"); | 149 self:GetMap():RemoveAllPinsByTemplate("WorldPlanFlightPin"); |
