HandyNotes: TravelGuide

HandyNotes: TravelGuide

2M Downloads

[Retail Feature] Lift between Isle of Dorn and The Ringing Deeps

Slackluster opened this issue ยท 3 comments

commented

For which client is your feature request?
Retail

Is your feature request related to a problem? Please describe.
N/A

Describe the solution you'd like
There is a lift that can be unlocked for quick travel between Dorn and Ringing Deeps. It would be nice to see this on the map.

Describe alternatives you've considered
N/A

Additional context
I realise the gateway from Dornogal to The Ringing Deeps isn't on the map, which makes sense, but this lift is an alternate route that I feel has reasons for being on the map. :D

commented

Hi, I have this on my todo list, but I haven't found a solution to remove the new BlizzardPOI.

commented

There is a second "Passage" at the Western Side of the Isle of Dorn that is still missing in Travel Guide!

Quest to unlock the 2nd Passage to the Ringing Deeps that start/finish from Oathsworn Earthen

commented

I would have already added the elevators, but these are MapLinks and not AreaPOIs.
Unfortunately, I haven't figured out how to remove the MapLinks because the MapLinkDataProvider doesn't have the GetPinTemplate() method like the AreaPOIDataProvider and some other DataProviders.

To determine which DataProvider belongs to the AreaPOIs to remove them, I use the GetPinTemplate() method to get which template is used and then I hook the RefreshAllData() method of the AreaPOIs, but I have no idea how to determine which DataProvider belongs to MapLinks.

-- This will remove specified AreaPois on the WorldMapFrame
local function RemoveAreaPOIs()
    if (not ns.db.remove_AreaPois) then return end

    for pin in WorldMapFrame:EnumeratePinsByTemplate("AreaPOIPinTemplate") do
        local areaPoiID = pin.poiInfo.areaPoiID
        if (areaPoisToRemove[areaPoiID]) then
            WorldMapFrame:RemovePin(pin)
            addon:debugmsg("removed AreaPOI "..areaPoiID.." "..pin.poiInfo.name)
        end
    end
end

function events:PLAYER_LOGIN(...)
    -- Hook the RefreshAllData() function of the "AreaPOIPinTemplate" data provider
    for dp in pairs(WorldMapFrame.dataProviders) do
        if (not dp.GetPinTemplates and type(dp.GetPinTemplate) == "function") then
            if (dp:GetPinTemplate() == "AreaPOIPinTemplate") then
                hooksecurefunc(dp, "RefreshAllData", RemoveAreaPOIs)
            end
        end
    end
end