getPropertyNames: Difference between revisions

From RPTools Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(22 intermediate revisions by 11 users not shown)
Line 1: Line 1:
==Function getPropertyNames==
{{MacroFunction
|name=getPropertyNames
|version=1.3b48
|description=
Returns a [[String List]] or [[JSON Array]] containing the names of the [[Introduction_to_Tokens#Properties|Token Properties]] for the [[Current Token]]. The type of the value returned depends on the delimiter parameter. All names returned will be in lower case. Use {{func|getPropertyNamesRaw}} to get the names as they are shown in [[Introduction_to_Properties|Campaign Properties]].


{{note|When a token is added to a campaign it inherits the currently defined properties of the current campaign.  These properties are persistent in the token even if the properties are subsequently removed from the campaign.  Properties that have been removed from the campaign are no longer editable via the Edit Token dialog but they are still present on the token and may be read and set with {{func|getProperty}} and {{func|setProperty}} respectively. To get ''all'' properties defined on a token, including those removed from the campaign, use ''getPropertyNames()''.  To see only the currently defined properties for the campaign, use {{func|getAllPropertyNames}}.}}


Returns a list containing the names of the names of the [[Token:property|properties]] on the [[Token:Current Token|Current Token]].
|usage=
The type of the value returned depends on the delimiter parameter.
<syntaxhighlight lang="mtmacro" line>
* If the delimiter is not specified then a [[Macros:string list|string list]] is returned with the default value of ',' is used.
getPropertyNames()
* If the delimiter ''"json"'' then a [[Macros:json array|json array]] is returned. '''(as of MapTool 1.3b49)'''
getPropertyNames(delim)
* Otherwise a [[Macros:string list|string list]] is returned with the delimiter passed int.
getPropertyNames(delim, tokenRef)
getPropertyNames(delim, tokenRef, mapname)
</syntaxhighlight>
'''Parameters'''
{{param|delim|The delimiter used to separate the values in the [[String List]], defaults to {{code|","}}. Returns a [[JSON Array]] if set to {{code|"json"}}. }}
{{param|tokenRef|Either the token [[getSelected|{{code|id}}]] or [[getTokenName|Token Name]] of the token which has its property names returned, defaults to the [[Current Token]]. {{TrustedParameter}} }}
{{param|mapname|The name of the map to find the token.  Defaults to the current map.}}
{{Note|Token IDs are unique, but Token Names can be duplicated. Using Token Name when more than one token has the same name can produce unexpected results.}}


 
|example=
<source lang="mtmacro" line>
To display the names of all of the [[Introduction_to_Tokens#Properties|properties]] on the current [[Token:token|token]] use.
[h: names = getPropertyNames()]
<syntaxhighlight lang="mtmacro" line>
[h: names = getPropertyNames(delim)]
</source>
delim is the delimiter used to separate the values in the  [[Macros:string list|string list]] which defaults to ',' if not specified.
 
 
===Examples===
To display the names of all of the [[Token:property|properties]] on the current [[Token:token|token]] use.
<source lang="mtmacro" line>
[h: names = getPropertyNames()]
[h: names = getPropertyNames()]
[foreach(name, names, "<br>"): name]
[foreach(name, names, "<br>"): name]
</source>
</syntaxhighlight>
|changes=
{{change|1.3b49|Added {{code|json}} delimiter option.}}
{{change|1.3b51|Added {{code|id}} parameter option.}}
{{change|1.5.4|Added {{code|mapname}} parameter option.}}
}}
[[Category:Token Function]][[Category:Property Function]]

Latest revision as of 20:51, 13 May 2024

getPropertyNames() Function

Introduced in version 1.3b48
Returns a String List or JSON Array containing the names of the Token Properties for the Current Token. The type of the value returned depends on the delimiter parameter. All names returned will be in lower case. Use getPropertyNamesRaw() to get the names as they are shown in Campaign Properties.


When a token is added to a campaign it inherits the currently defined properties of the current campaign. These properties are persistent in the token even if the properties are subsequently removed from the campaign. Properties that have been removed from the campaign are no longer editable via the Edit Token dialog but they are still present on the token and may be read and set with getProperty() and setProperty() respectively. To get all properties defined on a token, including those removed from the campaign, use getPropertyNames(). To see only the currently defined properties for the campaign, use getAllPropertyNames().

Usage

getPropertyNames()
getPropertyNames(delim)
getPropertyNames(delim, tokenRef)
getPropertyNames(delim, tokenRef, mapname)

Parameters

  • delim - The delimiter used to separate the values in the String List, defaults to ",". Returns a JSON Array if set to "json".
  • tokenRef - Either the token id or Token Name of the token which has its property names returned, defaults to the Current Token.

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

  • mapname - The name of the map to find the token. Defaults to the current map.
Token IDs are unique, but Token Names can be duplicated. Using Token Name when more than one token has the same name can produce unexpected results.

Example

To display the names of all of the properties on the current token use.
[h: names = getPropertyNames()]
[foreach(name, names, "<br>"): name]


Version Changes

  • 1.3b49 - Added json delimiter option.
  • 1.3b51 - Added id parameter option.
  • 1.5.4 - Added mapname parameter option.