Mercurial > wow > worldplan
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