API Reference

LibTourist 3.0 API Reference

 


Note for all functions that take a parameter 'zone', 'instance' or 'complex'

In the game, a small number of duplicate zone names exist. To be sure LibTourist returns the data for the desired zone, first use GetUniqueZoneNameForLookup(zoneName, continentID) to get a unique localized zone name based on the provided continent ID. Use this name for the lookup functions, if you are not using uiMapIDs.

Currently, there are five duplicate zones names:

  • "The Maelstrom"
  • "Nagrand"
  • "Shadowmoon Valley"
  • "Hellfire Citadel"
  • "Dalaran"

The unique English zone names for the duplicates are:

  • "The Maelstrom (Zone)"
  • "Nagrand (Draenor)"
  • "Shadowmoon Valley (Draenor)"
  • "Hellfire Citadel (Draenor)"
  • "Dalaran (Broken Isles)"

See reference below, the affected parameters are marked in blue.

 

Using UIMap ID

In addition to the above, these blue marked function parameters can also accept a uiMapID as used by the C_Map interface. Several LibTourist functions return uiMapIDs as well, like GetMapContinentsAlt, GetMapZonesAlt and GetContinentMapID. The complete list of uiMapIDs can be retrieved with GetMapIDLookupTable.

 


Flight node data

Version r213 and higher 

Data is gathered by LibTourist about flight nodes, using the C_TaxiMap interface. For each zone that has flight nodes, the node IDs have been stored in the library. At runtime, the C_TaxiMap interface is used to assign node data to these IDs in a lookup table.

Libtourist caches the MapTaxiNodeInfo objects from C_TaxiMap with two additional properties: 

structure TaxiMap.MapTaxiNodeInfo
        number nodeID              -- unique flight node ID
        table position                 -- position of the node on the Flight Master's map (no relation with the world map!)
        string name                    -- node name as displayed in game, includes zone name (mostly)
        string atlasName          -- atlas object type
        Enum.FlightPathFaction faction        -- 0 = Neutral, 1 = Horde, 2 = Alliance
        (optional) string textureKitPrefix    -- no clue what this is for
        string factionName      -- added by LibTourist: "Neutral", "Horde" or "Alliance" (not localized)
        table zones                      -- added by LibTourist: localized names of the zones in which the node resides*

*) some nodes, like those in major cities, are linked to the city (i.e. Orgrimmar) and the zone in which the city is located (i.e. Durotar). The majority however, has only one zone assigned.

The following API functions are available to access flight node data:

  • DoesZoneHaveFlightnodes(zone)
  • GetFlightnode(nodeID)
  • GetFlightnodeFactionColor(faction)
  • GetFlightnodeLookupTable()
  • IterateZoneFlightnodes(zone)
  • RefreshFlightNodeData()

Notes

  • The C_TaxiMap interface is used by the game to populate the TaxiMap. There is no relation whatsoever with the World Map or its coordinate system. The relations between nodes and zones have been included in LibTourist manually, but the world map coordinates of the flight nodes are unfortunately not available. Also, there is no data available in C_TaxiMap on connections between flight nodes.
  • For some reason, C_TaxiMap does not return data for a small number of node IDs (10 to 20 on a total of over 500). Which IDs depends on a few things, including the character's faction and if zones like Silithus and Blasted Lands are set to 'now' or 'present'. The nodes unavailable in C_TaxiMap do not exist for the character. All other nodes are returned, regardless of their faction and if they have been discovered or not. The Seahorses in Vashj'ir and teleports on Argus are included. Check the code comments to see which nodes are Seahorses.

 

Alphabetical API Reference

 

Tourist:CalculateLevelColor(low, high, currentLevel)

- low: the lower bound of a level range (number)

- high: the upper bound of the level range (number)

- currentLevel: the player level for which to calculate the level color (number)

Returns an r, g and b value representing a color ranging from grey (too low) via green, yellow and orange to red (too high) depending on the player level within the given range. Returns white if no level is applicable, like in cities.

 

Tourist:DoesZoneHaveComplexes(zone)

- zone: unique (localized) zone name or uiMapID

Returns true if the zone is known and contains one or more complexes. A complex is a zone containing the entrances for multiple instances.

 

Tourist:DoesZoneHaveFlightnodes(zone)

- zone: unique (localized) zone name or uiMapID
Returns true if any flight nodes (available to the player character or not) have been assigned to the given zone.

See introduction to flight node data (above) for more information.
Note: This is to be improved so true is only returned if the zone has nodes assigned that are available to the player. Teldrassil is an example of a zone that can have no available nodes depending on the time it is set to.

 

Tourist:DoesZoneHaveInstances(zone)

- zone: unique (localized) zone name or uiMapID

Returns true if the zone is known and contains one or more dungeon or raid instances.

 

Tourist:GetBattlePetLevel(zone)

- zone: unique (localized) zone name or uiMapID

Returns the minimum and maximum battle pet levels for the given zone, if the zone is known and contains battle pets (otherwise returns nil)

 

Tourist:GetBattlePetLevelColor(zone, petLevel)

- zone: unique (localized) zone name or uiMapID

- petLevel: the player's current battle pet level

Returns an r, g and b value representing a color ranging from grey (too low) via green, yellow and orange to red (too high), depending on the player's battle pet level within the battle pet level range of the given zone.

 

Tourist:GetBattlePetLevelString(zone)

- zone: unique (localized) zone name or uiMapID

Formats the minimum and maximum battle pet level for the given zone as "min-max". Returns one number if min and max are equal. Returns an empty string if no battle pet levels are available.

 

Tourist:GetBestZoneCoordinate()

Returns x, y, unique localized zone name and uiMapID for the most suitable map for the player's current position, x and y are values between 0 and 1.

 

Tourist:GetChomieTimeActiveExpansion()

Returns for the currently active Chomie Time expansion:
- expansion (localized expansion name, string)
- info (expansion info, ChromieTimeExpansionInfo struct)
Returns nil if no Chromie Time Expansion is active.

 

Tourist:GetComplex(zone)

- zone: unique (localized) name or uiMapID of an instance

Returns the localized name of the complex in which the instance resides, if any.

 

Tourist:GetComplexZone(complex)

- complex: unique (localized) name or uiMapID of a complex

Returns the localized name of the zone in which the given complex resides.

 

Tourist:GetContinent(zone)

- zone: unique (localized) zone name or uiMapID

Returns the localized name of the continent on which the given zone resides. Returns the localized continent name if the zone is a continent.

 

Tourist:GetContinentMapID(uiMapID)

- uiMapID: number, uiMapID of a zone as provided by the C_Map API or Tourist:GetMapZonesAlt.

Returns the uiMapID of the continent for the given uiMapID. Searches up through the C_Map hierarchy until the continent is found. If uiMapID represents a continent, the same ID is returned. If uiMapID represents a World map or Cosmic map, nil is returned. If no continent could be determined, nil is returned.

 

Tourist:GetEnglishZoneFromTexture(texture) - REMOVED

This function has been removed because texture names are no longer used by the world map API.

 

Tourist:GetEntrancePortalLocation(instance)

- instance: unique (localized) name  or uiMapID of an instance

Returns localized zone name, x-coordinate and y-coordinate of the entrance portal of the given instance, if the instance and the coordinates are known. The coordinates are values between 0 and 1.

 

Tourist:GetExpansion(zone)

- zone: unique (localized) zone name or uiMapID

Returns: Expansion index (number) and the English expansion name (string)

 

Tourist:GetFactionColor(zone)

- zone: unique (localized) zone name or uiMapID

Returns an r, g and b value representing a color, depending on the given zone and the current character's faction.

  • Blue = sanctuary
  • Orange = PvP
  • Green = friendly
  • Red = hostile
  • Yellow = neutral, contested or unknown.

 

Tourist:GetFishingLevel(zone) - REMOVED

Use Tourist:GetFishingSkillInfo.

 

Tourist:GetFishingSkillInfo(zone)

- zone: unique (localized) zone name or uiMapID

Returns fishing skill info for the specified zone (localized zone name or mapID):
- skillName: Name of the required fishing skill
- maxLevel: Maximum skill level that can be reached for that skill
- currentSkill: Current player skill level for that fishing skill
- skillEnabled: true if the player has learned the required skill

Note 1: no data is available if a skill has not been learned, so if skillEnabled is false, other values will be empty.
Note 2: data is only available if the Fishing Skill dialog has been opened or Tourist:LoadFishingSkills() has been called.

 

Tourist:GetFlightnode(nodeID)

- nodeID: ID of a Flight Node

Returns a node struct for the specified nodeID, if known and available (see introduction at the top of this page).

 

Tourist:GetFlightnodeFactionColor(faction)

- faction: can be 0 (neutral), 1 (Horde), 2 (Alliance), "Neutral", "Horde" or "Alliance" (not localized)

Returns an r, g and b value representing a color (yellow, red or green), depending on the given flight node faction and the current character's faction.

 

Tourist:GetFlightnodeLookupTable()
Returns the lookup table with all flight nodes.

Key = node ID, Value = a node struct if the node could be found in C_TaxiMap (see introduction at the top of this page). If the node was not returned by C_Taximap, Value is true instead of a node struct.

 

Tourist:GetHerbalismSkillInfo(zone)
- zone: localized zone name or mapID
Returns: skill name, current level, max level, skill modifier, parent skill ID for the herbalism skill required for the specified zone.

 

Tourist:GetHBD()

Returns a reference to the API of HereBeDragons, which is a dependency of LibTourist. Using this, HereBeDragons can be accessed without having to include or install it.

 

Tourist:GetInstanceAltGroupSize(instance)

- instance: unique (localized) name or uiMapID of an instance

Returns the secondary group size of the given instance, if any.

 

Tourist:GetInstanceGroupMinSize(instance)

- instance: unique (localized) name or uiMapID of an instance

Returns the minimum size of the primary group size of the given instance. If the primary group size is fixed, the minimum and maximum will be equal.

 

Tourist:GetInstanceGroupMaxSize(instance)

- instance: unique (localized) name or uiMapID of an instance

Returns the maximum size of the primary group size of the given instance. If the primary group size is fixed, the minimum and maximum will be equal.

 

Tourist:GetInstanceGroupSize(instance)

- instance: unique (localized) name or uiMapID of an instance

Returns the primary group size of the given instance. If the primary group size is variable, the maximum group size will be returned (for backward compatibility).

 

Tourist:GetInstanceGroupSizeString(instance, includeAltSize)

- instance: unique (localized) name or uiMapID of an instance

- includeAltSize: boolean; if true, the secondary group size (if any) is added to the output

This function composes a string reflecting the group sizes of an instance. Contains the primary group size (fixed or variable). If includeAltSize is set to true, the primary group size is followed by "or" and the alternative group size.

Output examples: "5", "10 or 25", "10-30", "10-30 or 20".

 

Tourist:GetInstanceZone(instance)

- instance: unique (localized) name or uiMapID of an instance

Returns the localized name of the zone in which the instance resides.

 

Tourist:GetLegionZoneLevel() - REMOVED

This function has been replaced by GetScaledZoneLevel.

 

Tourist:GetLevel(zone)

- zone: unique (localized) zone name or uiMapID

Returns the minimum and maximum level for the given zone, instance or battleground.

If zone is a zone or an instance, a third value is returned: the scaled zone level. This is the level 'presented' to the player when inside the zone. It's calculated by GetScaledZoneLevel.

This method takes the active Chromie Time expansion into account, if one is selected.

 

Tourist:GetLevelColor(zone)

- zone: unique (localized) zone name or uiMapID

Returns an r, g and b value representing a color ranging from grey (too low) via green, yellow and orange to red (too high), by calling CalculateLevelColor with the min and max level of the given zone and the current player level.

Note: if zone is a zone or an instance, the zone's scaled level (calculated by GetScaledZoneLevel) is used instead of it's minimum and maximum level. 

GetLevelColor returns r/g/b-values for the following colors:

  • City or level unknown -> White
  • Exact match, one-level bracket -> Yellow
  • Player is three or more levels short of Low -> Red
  • Player is two or less levels short of Low -> sliding scale between Red and Orange
  • Player is at low, at least two-level bracket -> Orange
  • Player is between low and the middle of the bracket -> sliding scale between Orange and Yellow
  • Player is at the middle of the bracket -> Yellow
  • Player is between the middle of the bracket and High -> sliding scale between Yellow and Green
  • Player is at High, at least two-level bracket -> Green
  • Player is up to three levels above High -> sliding scale between Green and Gray
  • Player is at High + 3 or above -> Gray

 

Tourist:GetLevelString(zone)

- zone: unique (localized) zone name or uiMapID

Formats the minimum and maximum player level for the given zone as "[min]-[max]". Returns one number if min and max are equal. Returns an empty string if no player levels are applicable (like in Cities).

If zone is a zone or an instance, the string will be formatted like "[scaled] ([min]-[max])", i.e. "27 (20-50)". 

This method takes the active Chromie Time expansion into account, if one is selected.

 

Tourist:GetLookupTable()

This function replaces the abandoned LibBabble-Zone library and returns a lookup table containing all zone names (including continents, instances etcetera) where the English zone name is the key and the localized zone name is the value.

 

Tourist:GetMapAreaIDByContinentZone(continentID, zoneIndex) - REMOVED

This function has been removed because identification by continentID and zoneIndex has been replaced by uiMapID.

 

Tourist:GetMapContinentsAlt()

Alternative for the deprecated WoW API function GetMapContinents. Returns a table with the uiMapID as key and the unique localized zone name as a value. Both can be used for the LibTourist lookup functions (see the remarks at the top of this reference).

 

Tourist:GetMapIDLookupTable()

Returns the lookup table with all uiMapIDs as key and the non-localized English zone name as value.

 

Tourist:GetMapNameByIDAlt(uiMapID)

- uiMapID: ID of the map, as used by the C_Map API

Alternative for the deprecated WoW API function GetMapNameByID. Returns a unique localized zone name that can be used to lookup data in LibTourist.

 

Tourist:GetMapZonesAlt(continentID)

- continentID: uiMapID of the continent (as provided by Tourist:GetMapContinentsAlt or the C_Map API)

Alternative for the deprecated WoW API function GetMapZones. GetMapZonesAlt returns a table with the names of all zones within a continent, with the uiMapID as key. Please note that this method does not convert duplicate zone names for lookup in LibTourist, use GetUniqueZoneNameForLookup for that, in addition to GetMapZonesAlt, or use the uiMapIDs for lookups.

 

Tourist:GetMiningSkillInfo(zone)
- zone: localized zone name or mapID
Returns: skill name, current level, max level, skill modifier, parent skill ID for the mining skill required for the specified zone.

 

Tourist:GetReverseLookupTable()

This function replaces the abandoned LibBabble-Zone library and returns a lookup table containing all zone names (including continents, instances etcetera) where the localized zone name is the key and the English zone name is the value.

 

Tourist:GetScaledZoneLevel(zone)

- zone: unique (localized) zone name or uiMapID

To be used for zones and instances that scale to the player's level within a certain level range. This function returns the zone level that will be experienced by the player when in that zone:

Returns the minimum level of the zone if the player level is lower than the minimum level of the zone.

Returns the maximum level of the zone if the player level is higher than the maximum level of the zone.

If the player level is between or equal to the zone's minimum and maximum, the current player level is returned.

 

Tourist:GetSkinningSkillInfo(zone)
- zone: localized zone name or mapID
Returns: skill name, current level, max level, skill modifier, parent skill ID for the skinning skill required for the specified zone.

 

Tourist:GetTexture(zone)

- zone: unique (localized) zone name or uiMapID

Returns the uiMapArtID, but only for the uiMapIDs known in the LibTourist zones collection. See Tourist:GetZoneMapID.

 

Tourist:GetType(zone)

- zone: unique (localized) zone name or uiMapID

Returns the type of zone. Possible values:

  • Arena
  • Battleground
  • City
  • Complex
  • Continent
  • Instance
  • PvP Zone
  • Transport
  • Zone

 

Tourist:GetUniqueEnglishZoneNameForLookup(zoneName, continentMapID)

- zoneName: name of a zone, localized or not, unique or not

- continentMapID: numeric uiMapID of the zone's continent, as returned by GetMapContinentsAlt or the C_Map API.

Returns a unique non-localized English zone name. These are not to be used to lookup data in LibTourist, unless the current locale is English.

 

Tourist:GetUniqueZoneNameForLookup(zoneName, continentMapID)

- zoneName: name of a zone, localized or not, unique or not

- continentMapID: numeric uiMapID of the zone's continent, as returned by GetMapContinentsAlt or the C_Map API.

Returns a unique localized zone name that can be used to lookup data in LibTourist.

See note at the top of this reference guide. 

 

Tourist:GetYardDistance(zone1, x1, y1, zone2, x2, y2)

- zone1: unique (localized) zone name or uiMapID (point A)

- x1: x-coordinate (0..1) in zone1

- y1: y-coordinate (0..1) in zone1

- zone2: unique (localized) zone name or uiMapID (point B)

- x2: x-coordinate (0..1) in zone2

- y2: y-coordinate (0..1) in zone2

Calculates a distance in game yards between point A and point B. Points A and B can be in different zones but must be on the same continent.

Uses HereBeDragons:GetZoneDistance for the calculation.

 

Tourist:GetZoneFromTexture(texture) - REMOVED

This function has been removed because texture names are no longer used by the world map API.

 

Tourist:GetZoneMapID(zone)

- zone: unique (localized) zone name

Returns a uiMapID of a zone based on the zone name.
Note: a zone can have multiple uiMapIDs due to phases or floors. Only one of those is returned. The uiMapID that is returned is the one that is retrieved during initialization through C_Map.GetMapChildrenInfo, called by GetMapContinentsAlt and GetMapZonesAlt.

 

Tourist:GetZoneMapIDFromTexture(texture) - REMOVED

This function has been removed because texture names are no longer used by the world map API.

 

Tourist:GetZoneYardOffset(zone) - REMOVED

 

This function has been removed because the offsets are no longer used by LibTourist and therefore no longer calculated.

 

Tourist:GetZoneYardSize(zone)

- zone: unique (localized) zone name or uiMapID

Returns the width of a zone map in game yards. The height is always 2/3 of this value.

 

Tourist:HasRecommendedInstances()

Returns true if recommended instances are available for the current player.

 

Tourist:IsAlliance(zone)

- zone: unique (localized) zone name or uiMapID

Returns true if the zone is an Alliance zone.

 

Tourist:IsArena(zone)

- zone: unique (localized) zone name or uiMapID

Returns true if the zone is an Arena.

 

Tourist:IsBattleground(zone)

- zone: unique (localized) zone name or uiMapID

Returns true if the zone is a Battleground.

 

Tourist:IsCity(zone)

- zone: unique (localized) zone name or uiMapID

Returns true if the zone is a City.

 

Tourist:IsComplex(zone)

- zone: unique (localized) zone name or uiMapID

Returns true if the zone is a Complex.

 

Tourist:IsContested(zone)

- zone: unique (localized) zone name or uiMapID

Returns true if the zone is contested.

 

Tourist:IsContinent(zone)

- zone: unique (localized) zone name or uiMapID

Returns true if the zone is a Continent. This includes Azeroth.

 

Tourist:IsFriendly(zone)

- zone: unique (localized) zone name or uiMapID

Returns true if the zone is of the same faction of the player.

 

Tourist:IsHorde(zone)

- zone: unique (localized) zone name or uiMapID

Returns true if the zone is a Horde zone.

 

Tourist:IsHostile(zone)

- zone: unique (localized) zone name or uiMapID

Returns true if the zone is of the opposite faction of the player.

 

Tourist:IsInArgus(zone)

- zone: unique (localized) zone name or uiMapID

Returns true if the zone is on the Argus continent.

 

Tourist:IsInBrokenIsles(zone)

- zone: unique (localized) zone name or uiMapID

Returns true if the zone is on the Broken Isles continent.

 

Tourist:IsInDraenor(zone)

- zone: unique (localized) zone name or uiMapID

Returns true if the zone is on the Draenor continent.

 

Tourist:IsInEasternKingdoms(zone)

- zone: unique (localized) zone name or uiMapID

Returns true if the zone is on the Eastern Kingdoms continent.

 

Tourist:IsInKalimdor(zone)

- zone: unique (localized) zone name or uiMapID

Returns true if the zone is on the Kalimdor continent.

 

Tourist:IsInKulTiras(zone)

- zone: unique (localized) zone name or uiMapID

Returns true if the zone is on the Kul Tiras continent.

 

Tourist:IsInNorthrend(zone)

- zone: unique (localized) zone name or uiMapID

Returns true if the zone is on the Northrend continent.

 

Tourist:IsInOutland(zone)

- zone: unique (localized) zone name or uiMapID

Returns true if the zone is on the Outland continent.

 

Tourist:IsInPandaria(zone)

- zone: unique (localized) zone name or uiMapID

Returns true if the zone is on the Pandaria continent.

 

Tourist:IsInstance(zone)

- zone: unique (localized) zone name or uiMapID

Returns true if the zone is a dungeon or raid Instance, a Battleground or an Arena.

 

Tourist:IsInTheMaelstrom(zone)

- zone: unique (localized) zone name or uiMapID

Returns true if the zone is on the The Maelstrom continent.

 

Tourist:IsInTheShadowlands(zone)

- zone: unique (localized) zone name or uiMapID
Returns true if the zone is on the The Shadowlands continent.

 

Tourist:IsInZandalar(zone)

- zone: unique (localized) zone name or uiMapID

Returns true if the zone is on the Zandalar continent.

 

Tourist:IsPvPZone(zone)

- zone: unique (localized) zone name or uiMapID

Returns true if the zone is a PvP zone (not including instances like Battlegrounds).

 

Tourist:IsSanctuary(zone)

- zone: unique (localized) zone name or uiMapID

Returns true if the zone is a Sanctuary.

 

Tourist:IsTransport(zone)

- zone: unique (localized) zone name or uiMapID

Returns true if the zone is a Transport.

 

Tourist:IsZone(zone)

- zone: unique (localized) zone name or uiMapID

Returns true if the zone is not an Instance, Battleground, Transport, Arena or Complex.

 

Tourist:IsZoneOrInstance(zone)

- zone: unique (localized) zone name or uiMapID

Returns true if the zone is not a Transport.

 

Tourist:IterateAlliance()

Iterates through the unique localized names of all zones that have player levels defined and are Alliance zones.

 

Tourist:IterateArenas()

Iterates through the unique localized names of all Arenas.

 

Tourist:IterateArgus()

Iterates through the unique localized names of all zones that have player levels defined and are on the Argus continent.

 

Tourist:IterateBattlegrounds()

Iterates through the unique localized names of all Battlegrounds.

 

Tourist:IterateBorderZones(zone, zonesOnly)

- zone: unique (localized) zone name or uiMapID

- zonesOnly: if true, paths to instances, transports and portals are ignored

Iterates through the unique localized names of all zones, instances or transports that have a connection with the given zone.

 

Tourist:IterateBrokenIsles()

Iterates through the unique localized names of all zones that have player levels defined and are on the Broken Isles continent.

 

Tourist:IterateComplexes()

Iterates through the unique localized names of all Complexes.

 

Tourist:IterateContested()

Iterates through the unique localized names of all zones that have player levels defined and are contested.

 

Tourist:IterateDraenor()

Iterates through the unique localized names of all zones that have player levels defined and are on the Draenor continent.

 

Tourist:IterateEasternKingdoms()

Iterates through the unique localized names of all zones that have player levels defined and are on the Easter Kindoms continent.

 

 

Tourist:IterateFriendly()

Iterates through the unique localized names of all zones that have player levels defined and are zones of the same faction as the player.

 

Tourist:IterateHorde()

Iterates through the unique localized names of all zones that have player levels defined and are Horde zones.

 

Tourist:IterateHostile()

Iterates through the unique localized names of all zones that have player levels defined and are zones of the opposite faction as the player.

  

Tourist:IterateInstances()

Iterates through the unique localized names of all dungeon and raid Instances.

 

Tourist:IterateKalimdor()

Iterates through the unique localized names of all zones that have player levels defined and are on the Kalimdor continent.

 

Tourist:IterateKulTiras()

Iterates through the unique localized names of all zones that have player levels defined and are on the Kul Tiras continent.

 

Tourist:IterateNorthrend()

Iterates through the unique localized names of all zones that have player levels defined and are on the Northrend continent.

 

Tourist:IterateOutland()

Iterates through the unique localized names of all zones that have player levels defined and are on the Outland continent.

 

Tourist:IteratePandaria()

Iterates through the unique localized names of all zones that have player levels defined and are on the Pandaria continent.

 

Tourist:IterateTheShadowlands()

Iterates through the unique localized names of all zones that have player levels defined and are on the The Shadowlands continent.

 

Tourist:IteratePath(alpha, bravo)

- alpha: localized zone name or uiMapID representing a starting zone

- bravo: localized zone name or uiMapID representing a destination zone

This function tries to calculate the most optimal path between alpha and bravo by foot or ground mount, that is, without using a flying mount or a taxi service. The return value, if a path is available, is an iteration that gives a travel advice in the form of a list of zones and transports to follow in order to get from alpha to bravo. The function tries to avoid hostile zones by calculating a "price" for each possible route. The price calculation takes level, faction and type into of a zone or transport account.

 

Tourist:IteratePvPZones()

Iterates through the unique localized names of all PvP Zones.

 

Tourist:IterateRecommendedInstances()

Iterates through the unique localized names of all Battlegrounds and Instances for which the player level is within the zone's level range.

 

Tourist:IterateRecommendedZones()

Iterates through the unique localized names of all Zones and PvP Zones for which the player level is within the zone's level range. The list is based on the scaled level of the zones, as calculated by GetScaledZoneLevel, and therefore returns all zones that can scale to the player's current level.

 

Tourist:IterateSanctuaries()

Iterates through the unique localized names of all Sanctuaries.

 

Tourist:IterateTheMaelstrom()

Iterates through the unique localized names of all zones that have player levels defined and are on the The Maelstrom continent.

 

Tourist:IterateZandalar()

Iterates through the unique localized names of all zones that have player levels defined and are on the Zandalar continent.

 

Tourist:IterateZoneComplexes(zone)

- zone: unique (localized) zone name or uiMapID

Iterates through the unique localized names of all Complexes within the given zone.

 

Tourist:IterateZoneFlightnodes(zone)

- zone: unique (localized) zone name or uiMapID
Loops through the available flight nodes for the given zone, returning node structs (see introduction at the top of this page).

 

Tourist:IterateZoneInstances(zone)

- zone: unique (localized) zone name or uiMapID

Iterates through the unique localized names of all dungeon and raid Instances within the given zone.

 

Tourist:IterateZones()

Iterates through the unique localized names of all zones that have player levels defined and are not Instance, Battleground, Arena or Complex.

 

Tourist:IterateZonesAndInstances()

Iterates through the unique localized names of all zones that have player levels defined.

 

Tourist:LoadFishingSkills()
Triggers the procedure to forcibly load the fishing skill data, required for Tourist:GetFishingInfo().
Because the data required for GetFishingInfo is not available until the Fishing Skills dialog has been opened,
this function briefly opens the dialog so C_TradeSkillUI gets populated with fishing skill data.

 

Tourist:RefreshFlightNodeData()
Refreshes the values of the FlightnodeLookupTable.
Note: the collection of nodes returned by C_TaxiMap changes when a zone like Silithus is set to a different time by visiting Zidormi. As I don't know how to detect such a time switch, the nodes lookup is not updated when this happens.

 

Tourist:TransposeZoneCoordinate(x, y, zone1, zone2)

- x: x-coordinate (0..1) in zone1

- y: y-coordinate (0..1) in zone1

- zone1: unique (localized) zone name or uiMapID

- zone2: unique (localized) zone name or uiMapID

This function is used to calculate the coordinates of a location in zone1, on the map of zone2. The zones can be continents (including Azeroth). The return values can be outside the range of 0 to 1.

Uses HereBeDragons:TranslateZoneCoordinates for the calculation.