getExposedTokenNames: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
(16 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
= | {{MacroFunction | ||
|name=getExposedTokenNames | |||
|trusted=true | |||
Gets a | |version=1.3b48 | ||
|description=Gets a list containing the names of all of the [[Token:token|token]]s on the current [[Introduction to Mapping|map]] that have been exposed, (i.e. not covered by [[Introduction to Lights and Sights#Fog of War|fog of war]]). The type of the value returned depends on the delimiter parameter. | |||
* If the delimiter is not specified then a [[Macros:string list|string list]] is returned and the default value of {{code|","}} is used. | |||
< | * If the delimiter {{code|"json"}} then a [[JSON Array]] is returned. | ||
* Otherwise, a [[Macros:string list|string list]] is returned with the delimiter passed in. | |||
| |||
</ | |usage= | ||
<syntaxhighlight lang="mtmacro" line> | |||
getExposedTokenNames() | |||
getExposedTokenNames(delim) | |||
</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. | ||
|example= | |||
The following example will print out the names of all the [[Token:token|token]]s on the current [[ | The following example will print out the names of all the [[Token:token|token]]s on the current [[Introduction to Mapping|map]] not covered by [[Introduction to Lights and Sights#Fog of War|fog of war]]. | ||
< | <syntaxhighlight lang="mtmacro" line> | ||
[h: names = getExposedTokenNames()] | [h: names = getExposedTokenNames()] | ||
[r: foreach(name, names, "<br>"): name] | [r: foreach(name, names, "<br>"): name] | ||
</ | </syntaxhighlight> | ||
The following example will return the exposed tokens from the TOKEN layer only. | |||
<syntaxhighlight lang="mtmacro" line> | |||
<!-- get all tokens from the token layer and store in json array --> | |||
[h:allToks = getTokenNames("json",'{layer:["TOKEN"]}')] | |||
<!-- get all exposed tokens from map --> | |||
[h:allExposed = getExposedTokenNames("json")] | |||
<!-- get the intersection of token layer tokens and all the exposed tokens, resulting in token layer exposed tokens only --> | |||
[h:tokExposed = json.intersection(allToks, allExp)] | |||
<!-- sort the result ascending --> | |||
[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. | |||
<syntaxhighlight lang="mtmacro" line> | |||
[h:tokExposed = json.sort(json.intersection(getTokenNames("json",'{layer:["TOKEN"]}'), getExposedTokenNames("json")),"a")] | |||
</syntaxhighlight> | |||
|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. | |||
}} | |||
[[Category:Find Function]] | |||
[[Category:Token Function]] |
Latest revision as of 17:03, 20 April 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
getExposedTokenNames()
getExposedTokenNames(delim)
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.
[h: names = getExposedTokenNames()]
[r: foreach(name, names, "<br>"): name]
The following example will return the exposed tokens from the TOKEN layer only.
<!-- get all tokens from the token layer and store in json array -->
[h:allToks = getTokenNames("json",'{layer:["TOKEN"]}')]
<!-- get all exposed tokens from map -->
[h:allExposed = getExposedTokenNames("json")]
<!-- get the intersection of token layer tokens and all the exposed tokens, resulting in token layer exposed tokens only -->
[h:tokExposed = json.intersection(allToks, allExp)]
<!-- sort the result ascending -->
[h:tokExposed = json.sort(allToks, allExp,"a")]
This is exactly the same example as the one above, but then nested, so you can have the result in one line of code.
[h:tokExposed = json.sort(json.intersection(getTokenNames("json",'{layer:["TOKEN"]}'), getExposedTokenNames("json")),"a")]
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.