getExposedTokenNames: Difference between revisions

From RPTools Wiki
Jump to navigation Jump to search
No edit summary
m (Text replacement - "source>" to "syntaxhighlight>")
Line 12: Line 12:
getExposedTokenNames()
getExposedTokenNames()
getExposedTokenNames(delim)
getExposedTokenNames(delim)
</source>
</syntaxhighlight>


If delim is specified then it is used as the delimiter that separates the [[Token:token|token]] names.
If delim is specified then it is used as the delimiter that separates the [[Token:token|token]] names.
Line 21: Line 21:
[h: names = getExposedTokenNames()]
[h: names = getExposedTokenNames()]
[r: foreach(name, names, "<br>"): name]
[r: foreach(name, names, "<br>"): name]
</source>
</syntaxhighlight>


The following example will return the exposed tokens from the TOKEN layer only.
The following example will return the exposed tokens from the TOKEN layer only.
Line 33: Line 33:
<!-- sort the result ascending -->
<!-- sort the result ascending -->
[h:tokExposed = json.sort(allToks, allExp,"a")]
[h:tokExposed = json.sort(allToks, allExp,"a")]
</source>
</syntaxhighlight>


This is exactly the same example as the one above, but then nested, so you can have the result in one line of code.
This is exactly the same example as the one above, but then nested, so you can have the result in one line of code.
<source lang="mtmacro" line>
<source lang="mtmacro" line>
[h:tokExposed = json.sort(json.intersection(getTokenNames("json",'{layer:["TOKEN"]}'), getExposedTokenNames("json")),"a")]
[h:tokExposed = json.sort(json.intersection(getTokenNames("json",'{layer:["TOKEN"]}'), getExposedTokenNames("json")),"a")]
</source>
</syntaxhighlight>





Revision as of 18:16, 14 March 2023

getExposedTokenNames() Function

 Note: This function can only be used in a Trusted Macro

Introduced in version 1.3b48
Gets a list containing the names of all of the tokens on the current map that have been exposed, (i.e. not covered by fog of war). The type of the value returned depends on the delimiter parameter.
  • If the delimiter is not specified then a string list is returned and the default value of "," is used.
  • If the delimiter "json" then a JSON Array is returned.
  • Otherwise, a string list is returned with the delimiter passed in.
 

Usage

<source lang="mtmacro" line> getExposedTokenNames() getExposedTokenNames(delim) </syntaxhighlight>

If delim is specified then it is used as the delimiter that separates the token names.

Example

The following example will print out the names of all the tokens on the current map not covered by fog of war.

<source lang="mtmacro" line> [h: names = getExposedTokenNames()] [r: foreach(name, names, "
"): name] </syntaxhighlight>

The following example will return the exposed tokens from the TOKEN layer only. <source lang="mtmacro" line> [h:allToks = getTokenNames("json",'{layer:["TOKEN"]}')] [h:allExposed = getExposedTokenNames("json")] [h:tokExposed = json.intersection(allToks, allExp)] [h:tokExposed = json.sort(allToks, allExp,"a")] </syntaxhighlight>

This is exactly the same example as the one above, but then nested, so you can have the result in one line of code. <source lang="mtmacro" line> [h:tokExposed = json.sort(json.intersection(getTokenNames("json",'{layer:["TOKEN"]}'), getExposedTokenNames("json")),"a")]

</syntaxhighlight>


Version Changes

  • 1.3b49 - Added "json" delimiter option.
  • 1.3b91 - Apparently now tokens from ALL layers are returned, instead of TOKEN LAYER only. Added example to correct this.