Variables
To use these functions, you need to import the "Scripting API Extra" library.
Return a list of all variables defined in the map
// returns a list of all the variables defined in the map.
getAllVariables(): Promise<Map<string, VariableDescriptor>>
Variables are returned as a Map. The key is the name of the variable, the value is an object representing the variable.
You can fetch individual properties defined in Tiled for this variable using this object's properties
attribute.
For instance:
import { getAllVariables, VariableDescriptor } from '@workadventure/scripting-api-extra';
const variables = await getAllVariables();
console.log(variables['my_variable'].properties.getOne('persist'));
Note: the VariableDescriptor
class returned does not contain the value of the variable itself. It represents the
variable object as defined in the Tiled map. This can be useful to access additional metadata that can be stored
in special properties of the variable, or to access the variable "position" in the map (since a variable is represented
by a "Point" object in a map).
class VariableDescriptor {
// the name of the variable
name: string
// an object representing the properties of the variable
properties: Properties
// The position of the variable
x: number
y: number
// True if the variable can be read by the current player
isReadable: boolean
// True if the variable can be written by the current player
isWritable: boolean
}
Configuration panel
Opening the local configuration panel
// Signature of the function
function openConfig(variables?: string[]): void
You can open the local configuration panel inside an iFrame just like you do via the Tiled openConfig
property.
This property let you filter which variables you want to display in the configuration page.
Well, you can do exactly that thanks to the openConfig()
function. Here's how it works:
import {openConfig} from '@workadventure/scripting-api-extra';
// This will open the local configuration panel with all the variables in the Tiled 'configuration' layer.
openConfig();
Filtering the local configuration panel
You can filter which variables to display by passing an array of variable names to the function.
import {openConfig} from '@workadventure/scripting-api-extra';
// This will open the local configuration panel with the specified variables in the Tiled 'configuration' layer.
openConfig(['leftDoorExit']);
Here is a quick example of how you can edit a variable by walking near the object that represents it in your map:
import { openConfig } from '@workadventure/scripting-api-extra';
WA.room.onEnterLayer('leftDoorStep').subscribe(() => {
openConfig(['leftDoorExit']);
});