3.4 KiB
{.section-title.accent.text-primary}
API Room functions Reference
Working with group layers
If you use group layers in your map, to reference a layer in a group you will need to use a / to join layer names together.
Example :
The name of the layers of this map are :
entries/startbottom/ground/underbottom/build/carpetwall
Detecting when the user enters/leaves a zone
WA.room.onEnterZone(name: string, callback: () => void): void
WA.room.onLeaveZone(name: string, callback: () => void): void
Listens to the position of the current user. The event is triggered when the user enters or leaves a given zone. The name of the zone is stored in the map, on a dedicated layer with the zone property.
- name: the name of the zone, as defined in the
zoneproperty. - callback: the function that will be called when a user enters or leaves the zone.
Example:
WA.room.onEnterZone('myZone', () => {
WA.chat.sendChatMessage("Hello!", 'Mr Robot');
})
WA.room.onLeaveZone('myZone', () => {
WA.chat.sendChatMessage("Goodbye!", 'Mr Robot');
})
Show / Hide a layer
WA.room.showLayer(layerName : string): void
WA.room.hideLayer(layerName : string) : void
These 2 methods can be used to show and hide a layer.
Example :
WA.room.showLayer('bottom');
//...
WA.room.hideLayer('bottom');
Set/Create properties in a layer
WA.room.setProperty(layerName : string, propertyName : string, propertyValue : string | number | boolean | undefined) : void;
Set the value of the propertyName property of the layer layerName at propertyValue. If the property doesn't exist, create the property propertyName and set the value of the property at propertyValue.
Example :
WA.room.setProperty('wikiLayer', 'openWebsite', 'https://www.wikipedia.org/');
Getting information on the current room
WA.room.getCurrentRoom(): Promise<Room>
Return a promise that resolves to a Room object with the following attributes :
- id (string) : ID of the current room
- map (ITiledMap) : contains the JSON map file with the properties that were setted by the script if
setPropertywas called. - mapUrl (string) : Url of the JSON map file
- startLayer (string | null) : Name of the layer where the current user started, only if different from
startlayer
Example :
WA.room.getCurrentRoom((room) => {
if (room.id === '42') {
console.log(room.map);
window.open(room.mapUrl, '_blank');
}
})
Getting information on the current user
WA.player.getCurrentUser(): Promise<User>
Return a promise that resolves to a User object with the following attributes :
- id (string) : ID of the current user
- nickName (string) : name displayed above the current user
- tags (string[]) : list of all the tags of the current user
Example :
WA.room.getCurrentUser().then((user) => {
if (user.nickName === 'ABC') {
console.log(user.tags);
}
})

