Maps
Contributor2 min readUpdated
The world map
Each feature is a setting on the Map page (Rares & travel, Zones), and none of
them makes a frame or loads data until it's on. The icon layers (dungeon
entrances, flight masters maps.taxiPins, docks maps.dockPins, inns
maps.innPins, and maps.travelMinimap for the minimap) default to off. The
flight timer and the instance tracker are set under Quality of Life.
- Unexplored areas (
maps.reveal:off|on|tint,Maps/Reveal.lua): textures on one frame of Polestar's on each map frame's canvas (the world map, and the battlefield map once Blizzard loads it), watched through MapCanvas (Nav) once the setting is first on, faded with the map's global alpha (the battlefield map's opacity).ZoneArt.FullOverlaysreturns the overlay table only when it was built for the art the client shows (art ID and tile size).Maps.UnexploredOverlayssubtracts the client's explored list (GetExploredMapTextures, matched on offset and size, since it returns no overlay IDs). An explored overlay is always left to Blizzard, soisShownByMouseOveroverlays stay hover-only. The tiles are split byZoneArt.EachOverlayTile, asMapExplorationDataProvidersplits them, onto one frame at the exploration pin frame level.tintmultiplies them by the Theme tokenmapUnexplored. The tiles are painted again as the map opens or changes, onMAP_EXPLORATION_UPDATEDand on theme changes. - Coordinates: the world map's info bar shows the player and the cursor
(
maps.coords,Maps/WorldMap.lua).maps.minimapCoordsadds a readout at the bottom of the minimap (Maps/Coords.lua, 5 Hz, repainted only when the tenth changes). Both useMaps.FormatCoords. - Minimap button (
maps.minimapButton, off by default;Maps/MinimapButton.lua): click firesTOGGLE_FRAME, right-clickSHOW_OPTIONS, a drag moves it around the minimap's edge and savesmaps.minimapButtonAngle(degrees, 0 = east). A square minimap (GetMinimapShape) puts it on the square's edge, and a resized one (OnSizeChanged) moves it to the new edge. No frame exists until the setting is first turned on. - Zone level ranges (
maps.zoneLevels): labels on continent maps, and the hovered zone's range in the info bar. The ranges come frommaps build(tools/lib/maps/zonelevels.js). Forever-only zones (maps with Forever frames and no Era frames inmap-frames.json) are held to the sparse thresholds, because every source records them thinly. - Dungeon entrances (
maps.dungeonPins,Maps/Dungeons.lua): a Pins layermaps.dungeonsbuilt from the CodexLookup's database of items, mounts, pets, recipes, NPCs, rares, quests, zones, dungeons and treasures, with where each comes from (codex build, the Polestar_Codex addon). packAn addon of guides for Polestar, built by the compiler from a folder with a pack.json (the folder is a pack too); Polestar's own is Polestar_Guides (pack id guides).'s instances, sincedungeons.jsonisn't license-clean and the core ships no entrances. The Codex is loaded the first time the world map opens with the setting on, or the layer is built onCODEX_LOADED. A click opens the dungeon's page in the hubPolestar's main window: a rail of sections (Guides, Lookup, Dungeons, Rares) with Options at its foot (UI/Picker.lua). (Polestar.Dungeons.Open(key)); with the Dungeons module off, or on Shift-click, it sets a Nav waypoint.
Was this page helpful?