Mercurial > wow > worldplan
changeset 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 |
files | FlightMap.lua QuestPOI.lua WorldQuests.lua |
diffstat | 3 files changed, 26 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/FlightMap.lua Fri Nov 04 01:40:39 2016 -0400 +++ b/FlightMap.lua Fri Nov 04 02:47:17 2016 -0400 @@ -48,6 +48,15 @@ function WorldPlanDataProvider:OnAdded(mapCanvas) self.activePins = {}; self.owningMap = mapCanvas + self:RegisterEvent('QUEST_LOG_UPDATE') + + -- remove the the blizzard data provider + for frame in pairs(FlightMapFrame.dataProviders) do + if frame.OnAdded == WorldQuestDataProviderMixin.OnAdded then + FlightMapFrame:RemoveDataProvider(frame) + break + end + end end @@ -92,6 +101,7 @@ frame:SetPosition(info.x, info.y) frame.pin = pin + pin.owningFrame = self:GetMap() pin.isStale = true pin:SetParent(frame) pin:ClearAllPoints() @@ -111,19 +121,27 @@ self.activePins[questId] = nil; end --self:GetMap():RemoveAllPinsByTemplate("WorldQuestPinTemplate"); + for pin in self:GetMap():EnumeratePinsByTemplate("WorldQuestPinTemplate") do + pin:Hide() + end 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 () - self.pin:OnEnter() + end function WorldPlanDataPinMixin:OnMouseLeave () - self.pin:OnLeave() + end function WorldPlanDataPinMixin:RemoveAllData()
--- a/QuestPOI.lua Fri Nov 04 01:40:39 2016 -0400 +++ b/QuestPOI.lua Fri Nov 04 02:47:17 2016 -0400 @@ -167,14 +167,16 @@ end function WorldPlanPOIMixin:OnEnter() - if not WorldMapFrame:IsVisible() then - WorldMap_HijackTooltip(self) + if WorldMapFrame:IsVisible() then + WorldMapTooltip:SetOwner(self, 'ANCHOR_RIGHT') + else + WorldMap_HijackTooltip(self.owningFrame) end local completed = select(4,GetAchievementInfo(familiars_id)) if not completed then if self.worldQuestType == LE_QUEST_TAG_TYPE_PET_BATTLE and familiars[self.questID] then - WorldMapTooltip:SetOwner(self, 'ANCHOR_RIGHT') + WorldMapTooltip:AddLine(self.title, 1, 1, 1) if self.quality then local c = ITEM_QUALITY_COLORS[self.quality]
--- a/WorldQuests.lua Fri Nov 04 01:40:39 2016 -0400 +++ b/WorldQuests.lua Fri Nov 04 02:47:17 2016 -0400 @@ -16,7 +16,7 @@ local mprint = DEVIAN_WORKSPACE and function(...) _G.print('Canvas', ...) end or function() end -local PinBaseIndex = 1600 +local PinBaseIndex = 1000 local BROKEN_ISLES_ID, DALARAN_ID, AZSUNA_ID, VALSHARAH_ID, HIGHMOUNTAIN_ID, STORMHEIM_ID, SURAMAR_ID, EOA_ID = 1007, 1014, 1015,1018, 1024, 1017, 1033, 1096 local WORLD_QUEST_MAPS = { [DALARAN_ID] = 'Dalaran70', [AZSUNA_ID] = 'Azsuna', [VALSHARAH_ID] = "Val'sharah", [HIGHMOUNTAIN_ID] = 'Highmountain', [STORMHEIM_ID] = 'Stormheim', [SURAMAR_ID] = 'Suramar', [EOA_ID] = 'EyeOfAszhara', }