From 6a394945f34717527a9cd9076a3f190beff00d03 Mon Sep 17 00:00:00 2001
From: Piotr 'pwh' Hanusiak
Date: Thu, 7 Apr 2022 15:49:58 +0200
Subject: [PATCH 01/25] we can now trigger events when stepping on tiled
rectangular objects. WIP
---
front/src/Phaser/Game/GameMap.ts | 23 +-
.../Phaser/Game/GameMapPropertiesListener.ts | 2 +
front/src/Phaser/Game/GameScene.ts | 1 +
maps/starter/map.json | 679 +++++++++---------
4 files changed, 364 insertions(+), 341 deletions(-)
diff --git a/front/src/Phaser/Game/GameMap.ts b/front/src/Phaser/Game/GameMap.ts
index d0ca4850..9f782aef 100644
--- a/front/src/Phaser/Game/GameMap.ts
+++ b/front/src/Phaser/Game/GameMap.ts
@@ -76,7 +76,8 @@ export class GameMap {
) {
this.flatLayers = flattenGroupLayersMap(map);
this.tiledObjects = this.getObjectsFromLayers(this.flatLayers);
- this.zones = this.tiledObjects.filter((object) => object.type === "zone");
+ this.zones = this.tiledObjects.filter((object) => object.width > 0);
+ console.log(this.zones);
let depth = -2;
for (const layer of this.flatLayers) {
@@ -469,6 +470,26 @@ export class GameMap {
private getProperties(key: number): Map {
const properties = new Map();
+ const zonesByNewPosition = this.position
+ ? this.zones.filter((zone) => {
+ if (!this.position) {
+ return false;
+ }
+ return MathUtils.isOverlappingWithRectangle(this.position, zone);
+ })
+ : [];
+
+ for (const zone of zonesByNewPosition) {
+ if (zone.properties !== undefined) {
+ for (const property of zone.properties) {
+ if (property.value === undefined) {
+ continue;
+ }
+ properties.set(property.name, property.value);
+ }
+ }
+ }
+
for (const layer of this.flatLayers) {
if (layer.type !== "tilelayer") {
continue;
diff --git a/front/src/Phaser/Game/GameMapPropertiesListener.ts b/front/src/Phaser/Game/GameMapPropertiesListener.ts
index 103cc4bc..ae1699c4 100644
--- a/front/src/Phaser/Game/GameMapPropertiesListener.ts
+++ b/front/src/Phaser/Game/GameMapPropertiesListener.ts
@@ -66,6 +66,8 @@ export class GameMapPropertiesListener {
}
});
} else {
+ console.log("START JITSI");
+ console.log(newValue, oldValue, allProps);
const openJitsiRoomFunction = () => {
const roomName = jitsiFactory.getRoomName(newValue.toString(), this.scene.instance);
const jitsiUrl = allProps.get(GameMapProperties.JITSI_URL) as string | undefined;
diff --git a/front/src/Phaser/Game/GameScene.ts b/front/src/Phaser/Game/GameScene.ts
index 457702da..21bd036b 100644
--- a/front/src/Phaser/Game/GameScene.ts
+++ b/front/src/Phaser/Game/GameScene.ts
@@ -893,6 +893,7 @@ export class GameScene extends DirtyScene {
});
this.gameMap.onEnterZone((zones) => {
+ console.log("ZONE ENTERED");
for (const zone of zones) {
const focusable = zone.properties?.find((property) => property.name === "focusable");
if (focusable && focusable.value === true) {
diff --git a/maps/starter/map.json b/maps/starter/map.json
index 8d93c66e..beee3669 100644
--- a/maps/starter/map.json
+++ b/maps/starter/map.json
@@ -1,341 +1,340 @@
-{ "compressionlevel":-1,
- "height":17,
- "infinite":false,
- "layers":[
- {
- "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 444, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 444, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 444, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
- "height":17,
- "id":6,
- "name":"start",
- "opacity":1,
- "type":"tilelayer",
- "visible":true,
- "width":31,
- "x":0,
- "y":0
- },
- {
- "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 0, 0, 443, 443, 443, 0, 0, 443, 443, 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, 443, 443, 0, 0, 0, 0, 443, 443, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 443, 443, 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, 443, 443, 0, 0, 0, 0, 443, 443, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 443, 443, 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, 443, 443, 0, 0, 0, 0, 443, 443, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 443, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 443, 0, 0, 0, 0, 443, 443, 0, 0, 0, 0, 0, 0, 0, 443, 443, 0, 0, 443, 443, 443, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 443, 0, 0, 443, 443, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 443, 0, 0, 443, 443, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 443, 0, 0, 443, 443, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 443, 443, 443, 443, 443, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 443, 443, 443, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 443, 443, 443, 443, 443, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 443, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 443, 443, 0, 0, 0, 0, 0, 0, 0, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
- "height":17,
- "id":7,
- "name":"collisions",
- "opacity":1,
- "type":"tilelayer",
- "visible":true,
- "width":31,
- "x":0,
- "y":0
- },
- {
- "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
- "height":17,
- "id":29,
- "name":"jitsiMeetingRoom",
- "opacity":1,
- "properties":[
- {
- "name":"jitsiRoom",
- "type":"string",
- "value":"MeetingRoom"
- }],
- "type":"tilelayer",
- "visible":true,
- "width":31,
- "x":0,
- "y":0
- },
- {
- "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
- "height":17,
- "id":38,
- "name":"jitsiChillzone",
- "opacity":1,
- "properties":[
- {
- "name":"jitsiRoom",
- "type":"string",
- "value":"ChillZone"
- },
- {
- "name":"jitsiTrigger",
- "type":"string",
- "value":"onaction"
- }],
- "type":"tilelayer",
- "visible":true,
- "width":31,
- "x":0,
- "y":0
- },
- {
- "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 446, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
- "height":17,
- "id":23,
- "name":"clockZone",
- "opacity":1,
- "properties":[
- {
- "name":"zone",
- "type":"string",
- "value":"clock"
- }],
- "type":"tilelayer",
- "visible":true,
- "width":31,
- "x":0,
- "y":0
- },
- {
- "data":[201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 223, 223, 223, 223, 223, 223, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 223, 223, 223, 223, 223, 223, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 223, 223, 223, 223, 223, 223, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 223, 223, 223, 223, 223, 223, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201],
- "height":17,
- "id":4,
- "name":"floor",
- "opacity":1,
- "type":"tilelayer",
- "visible":true,
- "width":31,
- "x":0,
- "y":0
- },
- {
- "data":[49, 58, 58, 58, 58, 58, 58, 42, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 42, 57, 57, 57, 57, 57, 57, 57, 50, 45, 63, 63, 63, 63, 63, 63, 45, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 45, 63, 63, 63, 63, 63, 63, 63, 45, 45, 73, 73, 73, 73, 73, 73, 45, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 45, 73, 73, 73, 73, 73, 73, 73, 45, 45, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 45, 59, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 32, 58, 58, 58, 58, 58, 58, 58, 60, 83, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 84, 93, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 94],
- "height":17,
- "id":9,
- "name":"walls",
- "opacity":1,
- "type":"tilelayer",
- "visible":true,
- "width":31,
- "x":0,
- "y":0
- },
- {
- "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, 0, 293, 0, 107, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 107, 0, 0, 128, 1, 2, 3, 0, 0, 0, 0, 304, 296, 297, 296, 297, 304, 0, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, 0, 0, 0, 11, 12, 13, 0, 0, 0, 0, 315, 307, 308, 307, 308, 315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 22, 23, 0, 0, 0, 0, 243, 0, 0, 0, 0, 2147483943, 0, 0, 0, 325, 340, 340, 326, 0, 0, 325, 340, 340, 326, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 244, 0, 283, 283, 0, 2147483954, 0, 0, 0, 0, 340, 340, 0, 0, 0, 0, 340, 340, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 294, 294, 0, 0, 0, 0, 0, 325, 340, 340, 326, 0, 0, 325, 340, 340, 326, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 0, 0, 0, 0, 351, 351, 0, 0, 0, 0, 0, 0, 325, 273, 275, 326, 0, 0, 0, 394, 395, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 325, 2147483923, 275, 326, 0, 0, 0, 405, 406, 0, 0, 0, 0, 0, 0, 0, 0, 0, 333, 334, 333, 334, 333, 334, 0, 0, 0, 0, 0, 0, 0, 325, 2147483923, 275, 326, 0, 0, 0, 416, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 344, 345, 344, 345, 344, 345, 0, 0, 0, 0, 0, 0, 0, 325, 2147483923, 275, 326, 0, 0, 0, 427, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 217, 220, 220, 220, 220, 218, 0, 0, 0, 0, 0, 0, 0, 0, 284, 286, 0, 0, 0, 0, 438, 439, 0, 0, 0, 0, 0, 0, 0, 0, 0, 335, 336, 335, 336, 335, 336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 346, 347, 346, 347, 346, 347, 0, 2147483811, 2147483810, 2147483809, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
- "height":17,
- "id":1,
- "name":"furniture",
- "opacity":1,
- "type":"tilelayer",
- "visible":true,
- "width":31,
- "x":0,
- "y":0
- },
- {
- "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2147483909, 261, 0, 0, 0, 0, 2147483909, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2147483909, 261, 0, 0, 0, 0, 2147483909, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 166, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 231, 231, 231, 231, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
- "height":17,
- "id":33,
- "name":"aboveFurniture",
- "opacity":1,
- "type":"tilelayer",
- "visible":true,
- "width":31,
- "x":0,
- "y":0
- },
- {
- "draworder":"topdown",
- "id":2,
- "name":"floorLayer",
- "objects":[
- {
- "height":64,
- "id":4,
- "name":"clockPopup",
- "rotation":0,
- "type":"",
- "visible":true,
- "width":128,
- "x":512,
- "y":0
- }],
- "opacity":1,
- "type":"objectgroup",
- "visible":true,
- "x":0,
- "y":0
- },
- {
- "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 329, 329, 0, 0, 0, 0, 329, 329, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 206, 209, 209, 209, 209, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 428, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2147483801, 2147483800, 2147483799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
- "height":17,
- "id":3,
- "name":"abovePlayer1",
- "opacity":1,
- "type":"tilelayer",
- "visible":true,
- "width":31,
- "x":0,
- "y":0
- },
- {
- "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 399, 400, 399, 400, 399, 400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 410, 411, 410, 411, 410, 411, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
- "height":17,
- "id":27,
- "name":"abovePlayer2",
- "opacity":1,
- "type":"tilelayer",
- "visible":true,
- "width":31,
- "x":0,
- "y":0
- },
- {
- "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 401, 402, 401, 402, 401, 402, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 412, 413, 412, 413, 412, 413, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
- "height":17,
- "id":28,
- "name":"abovePlayer3",
- "opacity":1,
- "type":"tilelayer",
- "visible":true,
- "width":31,
- "x":0,
- "y":0
- }],
- "nextlayerid":39,
- "nextobjectid":9,
- "orientation":"orthogonal",
- "properties":[
- {
- "name":"mapCopyright",
- "type":"string",
- "value":"Credits: Valdo Romao https:\/\/www.linkedin.com\/in\/valdo-romao\/ \nLicense: CC-BY-SA 3.0 (http:\/\/creativecommons.org\/licenses\/by-sa\/3.0\/)"
- },
- {
- "name":"mapDescription",
- "type":"string",
- "value":"A perfect virtual office to get started with WorkAdventure!"
- },
- {
- "name":"mapImage",
- "type":"string",
- "value":"map.png"
- },
- {
- "name":"mapLink",
- "type":"string",
- "value":"https:\/\/thecodingmachine.github.io\/workadventure-map-starter-kit\/map.json"
- },
- {
- "name":"mapName",
- "type":"string",
- "value":"Starter kit"
- },
- {
- "name":"script",
- "type":"string",
- "value":"..\/dist\/script.js"
- }],
- "renderorder":"right-down",
- "tiledversion":"1.7.0",
- "tileheight":32,
- "tilesets":[
- {
- "columns":10,
- "firstgid":1,
- "image":"..\/assets\/tileset5_export.png",
- "imageheight":320,
- "imagewidth":320,
- "margin":0,
- "name":"tileset5_export",
- "properties":[
- {
- "name":"tilesetCopyright",
- "type":"string",
- "value":"\u00a9 2021 WorkAdventure \nLicence: WORKADVENTURE SPECIFIC RESOURCES LICENSE (see LICENSE.assets file)"
- }],
- "spacing":0,
- "tilecount":100,
- "tileheight":32,
- "tilewidth":32
- },
- {
- "columns":10,
- "firstgid":101,
- "image":"..\/assets\/tileset6_export.png",
- "imageheight":320,
- "imagewidth":320,
- "margin":0,
- "name":"tileset6_export",
- "properties":[
- {
- "name":"tilesetCopyright",
- "type":"string",
- "value":"\u00a9 2021 WorkAdventure \nLicence: WORKADVENTURE SPECIFIC RESOURCES LICENSE (see LICENSE.assets file)"
- }],
- "spacing":0,
- "tilecount":100,
- "tileheight":32,
- "tilewidth":32
- },
- {
- "columns":11,
- "firstgid":201,
- "image":"..\/assets\/tileset1.png",
- "imageheight":352,
- "imagewidth":352,
- "margin":0,
- "name":"tileset1",
- "properties":[
- {
- "name":"tilesetCopyright",
- "type":"string",
- "value":"\u00a9 2021 WorkAdventure \nLicence: WORKADVENTURE SPECIFIC RESOURCES LICENSE (see LICENSE.assets file)"
- }],
- "spacing":0,
- "tilecount":121,
- "tileheight":32,
- "tilewidth":32
- },
- {
- "columns":11,
- "firstgid":322,
- "image":"..\/assets\/tileset1-repositioning.png",
- "imageheight":352,
- "imagewidth":352,
- "margin":0,
- "name":"tileset1-repositioning",
- "properties":[
- {
- "name":"tilesetCopyright",
- "type":"string",
- "value":"\u00a9 2021 WorkAdventure \nLicence: WORKADVENTURE SPECIFIC RESOURCES LICENSE (see LICENSE.assets file)"
- }],
- "spacing":0,
- "tilecount":121,
- "tileheight":32,
- "tilewidth":32
- },
- {
- "columns":6,
- "firstgid":443,
- "image":"..\/assets\/Special_Zones.png",
- "imageheight":64,
- "imagewidth":192,
- "margin":0,
- "name":"Special_Zones",
- "properties":[
- {
- "name":"tilesetCopyright",
- "type":"string",
- "value":"\u00a9 2021 WorkAdventure \nLicence: WORKADVENTURE SPECIFIC RESOURCES LICENSE (see LICENSE.assets file)"
- }],
- "spacing":0,
- "tilecount":12,
- "tileheight":32,
- "tiles":[
- {
- "id":0,
- "properties":[
- {
- "name":"collides",
- "type":"bool",
- "value":true
- }]
- }],
- "tilewidth":32
- }],
- "tilewidth":32,
- "type":"map",
- "version":"1.6",
- "width":31
+{ "compressionlevel":-1,
+ "height":17,
+ "infinite":false,
+ "layers":[
+ {
+ "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 444, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 444, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 444, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+ "height":17,
+ "id":6,
+ "name":"start",
+ "opacity":1,
+ "type":"tilelayer",
+ "visible":true,
+ "width":31,
+ "x":0,
+ "y":0
+ },
+ {
+ "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 0, 0, 443, 443, 443, 0, 0, 443, 443, 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, 443, 443, 0, 0, 0, 0, 443, 443, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 443, 443, 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, 443, 443, 0, 0, 0, 0, 443, 443, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 443, 443, 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, 443, 443, 0, 0, 0, 0, 443, 443, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 443, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 443, 0, 0, 0, 0, 443, 443, 0, 0, 0, 0, 0, 0, 0, 443, 443, 0, 0, 443, 443, 443, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 443, 0, 0, 443, 443, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 443, 0, 0, 443, 443, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 443, 0, 0, 443, 443, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 443, 443, 443, 443, 443, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 443, 443, 443, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 443, 443, 443, 443, 443, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 443, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 443, 443, 0, 0, 0, 0, 0, 0, 0, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+ "height":17,
+ "id":7,
+ "name":"collisions",
+ "opacity":1,
+ "type":"tilelayer",
+ "visible":true,
+ "width":31,
+ "x":0,
+ "y":0
+ },
+ {
+ "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+ "height":17,
+ "id":29,
+ "name":"jitsiMeetingRoom",
+ "opacity":1,
+ "properties":[
+ {
+ "name":"jitsiRoom",
+ "type":"string",
+ "value":"MeetingRoom"
+ }],
+ "type":"tilelayer",
+ "visible":true,
+ "width":31,
+ "x":0,
+ "y":0
+ },
+ {
+ "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 446, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+ "height":17,
+ "id":23,
+ "name":"clockZone",
+ "opacity":1,
+ "properties":[
+ {
+ "name":"zone",
+ "type":"string",
+ "value":"clock"
+ }],
+ "type":"tilelayer",
+ "visible":true,
+ "width":31,
+ "x":0,
+ "y":0
+ },
+ {
+ "data":[201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 223, 223, 223, 223, 223, 223, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 223, 223, 223, 223, 223, 223, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 223, 223, 223, 223, 223, 223, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 223, 223, 223, 223, 223, 223, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201],
+ "height":17,
+ "id":4,
+ "name":"floor",
+ "opacity":1,
+ "type":"tilelayer",
+ "visible":true,
+ "width":31,
+ "x":0,
+ "y":0
+ },
+ {
+ "data":[49, 58, 58, 58, 58, 58, 58, 42, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 42, 57, 57, 57, 57, 57, 57, 57, 50, 45, 63, 63, 63, 63, 63, 63, 45, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 45, 63, 63, 63, 63, 63, 63, 63, 45, 45, 73, 73, 73, 73, 73, 73, 45, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 45, 73, 73, 73, 73, 73, 73, 73, 45, 45, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 45, 59, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 32, 58, 58, 58, 58, 58, 58, 58, 60, 83, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 84, 93, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 94],
+ "height":17,
+ "id":9,
+ "name":"walls",
+ "opacity":1,
+ "type":"tilelayer",
+ "visible":true,
+ "width":31,
+ "x":0,
+ "y":0
+ },
+ {
+ "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, 0, 293, 0, 107, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 107, 0, 0, 128, 1, 2, 3, 0, 0, 0, 0, 304, 296, 297, 296, 297, 304, 0, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, 0, 0, 0, 11, 12, 13, 0, 0, 0, 0, 315, 307, 308, 307, 308, 315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 22, 23, 0, 0, 0, 0, 243, 0, 0, 0, 0, 2147483943, 0, 0, 0, 325, 340, 340, 326, 0, 0, 325, 340, 340, 326, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 244, 0, 283, 283, 0, 2147483954, 0, 0, 0, 0, 340, 340, 0, 0, 0, 0, 340, 340, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 294, 294, 0, 0, 0, 0, 0, 325, 340, 340, 326, 0, 0, 325, 340, 340, 326, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 0, 0, 0, 0, 351, 351, 0, 0, 0, 0, 0, 0, 325, 273, 275, 326, 0, 0, 0, 394, 395, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 325, 2147483923, 275, 326, 0, 0, 0, 405, 406, 0, 0, 0, 0, 0, 0, 0, 0, 0, 333, 334, 333, 334, 333, 334, 0, 0, 0, 0, 0, 0, 0, 325, 2147483923, 275, 326, 0, 0, 0, 416, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 344, 345, 344, 345, 344, 345, 0, 0, 0, 0, 0, 0, 0, 325, 2147483923, 275, 326, 0, 0, 0, 427, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 217, 220, 220, 220, 220, 218, 0, 0, 0, 0, 0, 0, 0, 0, 284, 286, 0, 0, 0, 0, 438, 439, 0, 0, 0, 0, 0, 0, 0, 0, 0, 335, 336, 335, 336, 335, 336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 346, 347, 346, 347, 346, 347, 0, 2147483811, 2147483810, 2147483809, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+ "height":17,
+ "id":1,
+ "name":"furniture",
+ "opacity":1,
+ "type":"tilelayer",
+ "visible":true,
+ "width":31,
+ "x":0,
+ "y":0
+ },
+ {
+ "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2147483909, 261, 0, 0, 0, 0, 2147483909, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2147483909, 261, 0, 0, 0, 0, 2147483909, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 166, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 231, 231, 231, 231, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+ "height":17,
+ "id":33,
+ "name":"aboveFurniture",
+ "opacity":1,
+ "type":"tilelayer",
+ "visible":true,
+ "width":31,
+ "x":0,
+ "y":0
+ },
+ {
+ "draworder":"topdown",
+ "id":2,
+ "name":"floorLayer",
+ "objects":[
+ {
+ "height":64,
+ "id":4,
+ "name":"clockPopup",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":128,
+ "x":512,
+ "y":0
+ },
+ {
+ "height":39.2648412257873,
+ "id":9,
+ "name":"jitsiChillZone",
+ "properties":[
+ {
+ "name":"jitsiRoom",
+ "type":"string",
+ "value":"MeetingRoom"
+ },
+ {
+ "name":"jitsiTrigger",
+ "type":"string",
+ "value":"onaction"
+ }],
+ "rotation":0.513253840280061,
+ "type":"",
+ "visible":true,
+ "width":76.5390990955655,
+ "x":59.0274706237854,
+ "y":91.8390566468795
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ {
+ "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 329, 329, 0, 0, 0, 0, 329, 329, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 206, 209, 209, 209, 209, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 428, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2147483801, 2147483800, 2147483799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+ "height":17,
+ "id":3,
+ "name":"abovePlayer1",
+ "opacity":1,
+ "type":"tilelayer",
+ "visible":true,
+ "width":31,
+ "x":0,
+ "y":0
+ },
+ {
+ "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 399, 400, 399, 400, 399, 400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 410, 411, 410, 411, 410, 411, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+ "height":17,
+ "id":27,
+ "name":"abovePlayer2",
+ "opacity":1,
+ "type":"tilelayer",
+ "visible":true,
+ "width":31,
+ "x":0,
+ "y":0
+ },
+ {
+ "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 401, 402, 401, 402, 401, 402, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 412, 413, 412, 413, 412, 413, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+ "height":17,
+ "id":28,
+ "name":"abovePlayer3",
+ "opacity":1,
+ "type":"tilelayer",
+ "visible":true,
+ "width":31,
+ "x":0,
+ "y":0
+ }],
+ "nextlayerid":39,
+ "nextobjectid":10,
+ "orientation":"orthogonal",
+ "properties":[
+ {
+ "name":"mapCopyright",
+ "type":"string",
+ "value":"Credits: Valdo Romao https:\/\/www.linkedin.com\/in\/valdo-romao\/ \nLicense: CC-BY-SA 3.0 (http:\/\/creativecommons.org\/licenses\/by-sa\/3.0\/)"
+ },
+ {
+ "name":"mapDescription",
+ "type":"string",
+ "value":"A perfect virtual office to get started with WorkAdventure!"
+ },
+ {
+ "name":"mapImage",
+ "type":"string",
+ "value":"map.png"
+ },
+ {
+ "name":"mapLink",
+ "type":"string",
+ "value":"https:\/\/thecodingmachine.github.io\/workadventure-map-starter-kit\/map.json"
+ },
+ {
+ "name":"mapName",
+ "type":"string",
+ "value":"Starter kit"
+ },
+ {
+ "name":"script",
+ "type":"string",
+ "value":"..\/dist\/script.js"
+ }],
+ "renderorder":"right-down",
+ "tiledversion":"1.7.2",
+ "tileheight":32,
+ "tilesets":[
+ {
+ "columns":10,
+ "firstgid":1,
+ "image":"..\/assets\/tileset5_export.png",
+ "imageheight":320,
+ "imagewidth":320,
+ "margin":0,
+ "name":"tileset5_export",
+ "properties":[
+ {
+ "name":"tilesetCopyright",
+ "type":"string",
+ "value":"\u00a9 2021 WorkAdventure \nLicence: WORKADVENTURE SPECIFIC RESOURCES LICENSE (see LICENSE.assets file)"
+ }],
+ "spacing":0,
+ "tilecount":100,
+ "tileheight":32,
+ "tilewidth":32
+ },
+ {
+ "columns":10,
+ "firstgid":101,
+ "image":"..\/assets\/tileset6_export.png",
+ "imageheight":320,
+ "imagewidth":320,
+ "margin":0,
+ "name":"tileset6_export",
+ "properties":[
+ {
+ "name":"tilesetCopyright",
+ "type":"string",
+ "value":"\u00a9 2021 WorkAdventure \nLicence: WORKADVENTURE SPECIFIC RESOURCES LICENSE (see LICENSE.assets file)"
+ }],
+ "spacing":0,
+ "tilecount":100,
+ "tileheight":32,
+ "tilewidth":32
+ },
+ {
+ "columns":11,
+ "firstgid":201,
+ "image":"..\/assets\/tileset1.png",
+ "imageheight":352,
+ "imagewidth":352,
+ "margin":0,
+ "name":"tileset1",
+ "properties":[
+ {
+ "name":"tilesetCopyright",
+ "type":"string",
+ "value":"\u00a9 2021 WorkAdventure \nLicence: WORKADVENTURE SPECIFIC RESOURCES LICENSE (see LICENSE.assets file)"
+ }],
+ "spacing":0,
+ "tilecount":121,
+ "tileheight":32,
+ "tilewidth":32
+ },
+ {
+ "columns":11,
+ "firstgid":322,
+ "image":"..\/assets\/tileset1-repositioning.png",
+ "imageheight":352,
+ "imagewidth":352,
+ "margin":0,
+ "name":"tileset1-repositioning",
+ "properties":[
+ {
+ "name":"tilesetCopyright",
+ "type":"string",
+ "value":"\u00a9 2021 WorkAdventure \nLicence: WORKADVENTURE SPECIFIC RESOURCES LICENSE (see LICENSE.assets file)"
+ }],
+ "spacing":0,
+ "tilecount":121,
+ "tileheight":32,
+ "tilewidth":32
+ },
+ {
+ "columns":6,
+ "firstgid":443,
+ "image":"..\/assets\/Special_Zones.png",
+ "imageheight":64,
+ "imagewidth":192,
+ "margin":0,
+ "name":"Special_Zones",
+ "properties":[
+ {
+ "name":"tilesetCopyright",
+ "type":"string",
+ "value":"\u00a9 2021 WorkAdventure \nLicence: WORKADVENTURE SPECIFIC RESOURCES LICENSE (see LICENSE.assets file)"
+ }],
+ "spacing":0,
+ "tilecount":12,
+ "tileheight":32,
+ "tiles":[
+ {
+ "id":0,
+ "properties":[
+ {
+ "name":"collides",
+ "type":"bool",
+ "value":true
+ }]
+ }],
+ "tilewidth":32
+ }],
+ "tilewidth":32,
+ "type":"map",
+ "version":"1.6",
+ "width":31
}
\ No newline at end of file
From 67f49722922fb49885c56879cda3e27f73b07e36 Mon Sep 17 00:00:00 2001
From: Piotr 'pwh' Hanusiak
Date: Mon, 11 Apr 2022 13:12:19 +0200
Subject: [PATCH 02/25] little cleanup
---
front/src/Phaser/Game/GameMap.ts | 42 ++++------
front/src/Phaser/Game/GameMapProperties.ts | 2 +
.../Phaser/Game/GameMapPropertiesListener.ts | 2 -
front/src/Phaser/Game/GameScene.ts | 9 ++-
maps/starter/map.json | 80 ++++++++++++++-----
5 files changed, 83 insertions(+), 52 deletions(-)
diff --git a/front/src/Phaser/Game/GameMap.ts b/front/src/Phaser/Game/GameMap.ts
index 9f782aef..ce6e2711 100644
--- a/front/src/Phaser/Game/GameMap.ts
+++ b/front/src/Phaser/Game/GameMap.ts
@@ -77,7 +77,6 @@ export class GameMap {
this.flatLayers = flattenGroupLayersMap(map);
this.tiledObjects = this.getObjectsFromLayers(this.flatLayers);
this.zones = this.tiledObjects.filter((object) => object.width > 0);
- console.log(this.zones);
let depth = -2;
for (const layer of this.flatLayers) {
@@ -424,23 +423,8 @@ export class GameMap {
* We use Tiled Objects with type "zone" as zones with defined x, y, width and height for easier event triggering.
*/
private triggerZonesChange(): void {
- const zonesByOldPosition = this.oldPosition
- ? this.zones.filter((zone) => {
- if (!this.oldPosition) {
- return false;
- }
- return MathUtils.isOverlappingWithRectangle(this.oldPosition, zone);
- })
- : [];
-
- const zonesByNewPosition = this.position
- ? this.zones.filter((zone) => {
- if (!this.position) {
- return false;
- }
- return MathUtils.isOverlappingWithRectangle(this.position, zone);
- })
- : [];
+ const zonesByOldPosition = this.getZonesOnPosition(this.oldPosition);
+ const zonesByNewPosition = this.getZonesOnPosition(this.position);
const enterZones = new Set(zonesByNewPosition);
const leaveZones = new Set(zonesByOldPosition);
@@ -470,16 +454,7 @@ export class GameMap {
private getProperties(key: number): Map {
const properties = new Map();
- const zonesByNewPosition = this.position
- ? this.zones.filter((zone) => {
- if (!this.position) {
- return false;
- }
- return MathUtils.isOverlappingWithRectangle(this.position, zone);
- })
- : [];
-
- for (const zone of zonesByNewPosition) {
+ for (const zone of this.getZonesOnPosition(this.position)) {
if (zone.properties !== undefined) {
for (const property of zone.properties) {
if (property.value === undefined) {
@@ -528,6 +503,17 @@ export class GameMap {
return properties;
}
+ private getZonesOnPosition(position?: { x: number; y: number }): ITiledMapObject[] {
+ return position
+ ? this.zones.filter((zone) => {
+ if (!position) {
+ return false;
+ }
+ return MathUtils.isOverlappingWithRectangle(position, zone);
+ })
+ : [];
+ }
+
private getTileProperty(index: number): Array {
if (this.tileSetPropertyMap[index]) {
return this.tileSetPropertyMap[index];
diff --git a/front/src/Phaser/Game/GameMapProperties.ts b/front/src/Phaser/Game/GameMapProperties.ts
index b77bd02b..1c2a78b6 100644
--- a/front/src/Phaser/Game/GameMapProperties.ts
+++ b/front/src/Phaser/Game/GameMapProperties.ts
@@ -7,6 +7,7 @@ export enum GameMapProperties {
EXIT_URL = "exitUrl",
EXIT_SCENE_URL = "exitSceneUrl",
FONT_FAMILY = "font-family",
+ FOCUSABLE = "focusable",
JITSI_ADMIN_ROOM_TAG = "jitsiRoomAdminTag",
JITSI_CONFIG = "jitsiConfig",
JITSI_INTERFACE_CONFIG = "jitsiInterfaceConfig",
@@ -35,4 +36,5 @@ export enum GameMapProperties {
URL = "url",
WRITABLE_BY = "writableBy",
ZONE = "zone",
+ ZOOM_MARGIN = "zoom_margin",
}
diff --git a/front/src/Phaser/Game/GameMapPropertiesListener.ts b/front/src/Phaser/Game/GameMapPropertiesListener.ts
index ae1699c4..103cc4bc 100644
--- a/front/src/Phaser/Game/GameMapPropertiesListener.ts
+++ b/front/src/Phaser/Game/GameMapPropertiesListener.ts
@@ -66,8 +66,6 @@ export class GameMapPropertiesListener {
}
});
} else {
- console.log("START JITSI");
- console.log(newValue, oldValue, allProps);
const openJitsiRoomFunction = () => {
const roomName = jitsiFactory.getRoomName(newValue.toString(), this.scene.instance);
const jitsiUrl = allProps.get(GameMapProperties.JITSI_URL) as string | undefined;
diff --git a/front/src/Phaser/Game/GameScene.ts b/front/src/Phaser/Game/GameScene.ts
index 21bd036b..210cfba1 100644
--- a/front/src/Phaser/Game/GameScene.ts
+++ b/front/src/Phaser/Game/GameScene.ts
@@ -893,11 +893,14 @@ export class GameScene extends DirtyScene {
});
this.gameMap.onEnterZone((zones) => {
- console.log("ZONE ENTERED");
for (const zone of zones) {
- const focusable = zone.properties?.find((property) => property.name === "focusable");
+ const focusable = zone.properties?.find(
+ (property) => property.name === GameMapProperties.FOCUSABLE
+ );
if (focusable && focusable.value === true) {
- const zoomMargin = zone.properties?.find((property) => property.name === "zoom_margin");
+ const zoomMargin = zone.properties?.find(
+ (property) => property.name === GameMapProperties.ZOOM_MARGIN
+ );
this.cameraManager.enterFocusMode(
{
x: zone.x + zone.width * 0.5,
diff --git a/maps/starter/map.json b/maps/starter/map.json
index beee3669..b6ea80b9 100644
--- a/maps/starter/map.json
+++ b/maps/starter/map.json
@@ -26,24 +26,6 @@
"x":0,
"y":0
},
- {
- "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
- "height":17,
- "id":29,
- "name":"jitsiMeetingRoom",
- "opacity":1,
- "properties":[
- {
- "name":"jitsiRoom",
- "type":"string",
- "value":"MeetingRoom"
- }],
- "type":"tilelayer",
- "visible":true,
- "width":31,
- "x":0,
- "y":0
- },
{
"data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 446, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
"height":17,
@@ -147,6 +129,66 @@
"width":76.5390990955655,
"x":59.0274706237854,
"y":91.8390566468795
+ },
+ {
+ "height":179.413785031117,
+ "id":10,
+ "name":"focusableChillZone",
+ "properties":[
+ {
+ "name":"focusOn",
+ "type":"bool",
+ "value":true
+ },
+ {
+ "name":"focusable",
+ "type":"bool",
+ "value":true
+ },
+ {
+ "name":"jitsiRoom",
+ "type":"string",
+ "value":"MeetingRoom"
+ },
+ {
+ "name":"jitsiTrigger",
+ "type":"string",
+ "value":"onaction"
+ }],
+ "rotation":0.513254,
+ "type":"",
+ "visible":true,
+ "width":283.802849832786,
+ "x":316.73045,
+ "y":255.367599999999
+ },
+ {
+ "height":119,
+ "id":11,
+ "name":"",
+ "properties":[
+ {
+ "name":"silent",
+ "type":"bool",
+ "value":true
+ }],
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":214,
+ "x":745,
+ "y":329
+ },
+ {
+ "height":0,
+ "id":13,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":0,
+ "x":358,
+ "y":629
}],
"opacity":1,
"type":"objectgroup",
@@ -191,7 +233,7 @@
"y":0
}],
"nextlayerid":39,
- "nextobjectid":10,
+ "nextobjectid":14,
"orientation":"orthogonal",
"properties":[
{
From 2fa504a18949153237c363f79cacd5414beaf188 Mon Sep 17 00:00:00 2001
From: Piotr 'pwh' Hanusiak
Date: Mon, 11 Apr 2022 13:40:55 +0200
Subject: [PATCH 03/25] add test map
---
maps/starter/map.json | 721 ++++++++++++++++------------------
maps/tests/index.html | 8 +
maps/tests/tiled_objects.json | 268 +++++++++++++
3 files changed, 616 insertions(+), 381 deletions(-)
create mode 100644 maps/tests/tiled_objects.json
diff --git a/maps/starter/map.json b/maps/starter/map.json
index b6ea80b9..8d93c66e 100644
--- a/maps/starter/map.json
+++ b/maps/starter/map.json
@@ -1,382 +1,341 @@
-{ "compressionlevel":-1,
- "height":17,
- "infinite":false,
- "layers":[
- {
- "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 444, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 444, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 444, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
- "height":17,
- "id":6,
- "name":"start",
- "opacity":1,
- "type":"tilelayer",
- "visible":true,
- "width":31,
- "x":0,
- "y":0
- },
- {
- "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 0, 0, 443, 443, 443, 0, 0, 443, 443, 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, 443, 443, 0, 0, 0, 0, 443, 443, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 443, 443, 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, 443, 443, 0, 0, 0, 0, 443, 443, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 443, 443, 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, 443, 443, 0, 0, 0, 0, 443, 443, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 443, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 443, 0, 0, 0, 0, 443, 443, 0, 0, 0, 0, 0, 0, 0, 443, 443, 0, 0, 443, 443, 443, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 443, 0, 0, 443, 443, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 443, 0, 0, 443, 443, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 443, 0, 0, 443, 443, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 443, 443, 443, 443, 443, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 443, 443, 443, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 443, 443, 443, 443, 443, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 443, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 443, 443, 0, 0, 0, 0, 0, 0, 0, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
- "height":17,
- "id":7,
- "name":"collisions",
- "opacity":1,
- "type":"tilelayer",
- "visible":true,
- "width":31,
- "x":0,
- "y":0
- },
- {
- "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 446, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
- "height":17,
- "id":23,
- "name":"clockZone",
- "opacity":1,
- "properties":[
- {
- "name":"zone",
- "type":"string",
- "value":"clock"
- }],
- "type":"tilelayer",
- "visible":true,
- "width":31,
- "x":0,
- "y":0
- },
- {
- "data":[201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 223, 223, 223, 223, 223, 223, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 223, 223, 223, 223, 223, 223, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 223, 223, 223, 223, 223, 223, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 223, 223, 223, 223, 223, 223, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201],
- "height":17,
- "id":4,
- "name":"floor",
- "opacity":1,
- "type":"tilelayer",
- "visible":true,
- "width":31,
- "x":0,
- "y":0
- },
- {
- "data":[49, 58, 58, 58, 58, 58, 58, 42, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 42, 57, 57, 57, 57, 57, 57, 57, 50, 45, 63, 63, 63, 63, 63, 63, 45, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 45, 63, 63, 63, 63, 63, 63, 63, 45, 45, 73, 73, 73, 73, 73, 73, 45, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 45, 73, 73, 73, 73, 73, 73, 73, 45, 45, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 45, 59, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 32, 58, 58, 58, 58, 58, 58, 58, 60, 83, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 84, 93, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 94],
- "height":17,
- "id":9,
- "name":"walls",
- "opacity":1,
- "type":"tilelayer",
- "visible":true,
- "width":31,
- "x":0,
- "y":0
- },
- {
- "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, 0, 293, 0, 107, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 107, 0, 0, 128, 1, 2, 3, 0, 0, 0, 0, 304, 296, 297, 296, 297, 304, 0, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, 0, 0, 0, 11, 12, 13, 0, 0, 0, 0, 315, 307, 308, 307, 308, 315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 22, 23, 0, 0, 0, 0, 243, 0, 0, 0, 0, 2147483943, 0, 0, 0, 325, 340, 340, 326, 0, 0, 325, 340, 340, 326, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 244, 0, 283, 283, 0, 2147483954, 0, 0, 0, 0, 340, 340, 0, 0, 0, 0, 340, 340, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 294, 294, 0, 0, 0, 0, 0, 325, 340, 340, 326, 0, 0, 325, 340, 340, 326, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 0, 0, 0, 0, 351, 351, 0, 0, 0, 0, 0, 0, 325, 273, 275, 326, 0, 0, 0, 394, 395, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 325, 2147483923, 275, 326, 0, 0, 0, 405, 406, 0, 0, 0, 0, 0, 0, 0, 0, 0, 333, 334, 333, 334, 333, 334, 0, 0, 0, 0, 0, 0, 0, 325, 2147483923, 275, 326, 0, 0, 0, 416, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 344, 345, 344, 345, 344, 345, 0, 0, 0, 0, 0, 0, 0, 325, 2147483923, 275, 326, 0, 0, 0, 427, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 217, 220, 220, 220, 220, 218, 0, 0, 0, 0, 0, 0, 0, 0, 284, 286, 0, 0, 0, 0, 438, 439, 0, 0, 0, 0, 0, 0, 0, 0, 0, 335, 336, 335, 336, 335, 336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 346, 347, 346, 347, 346, 347, 0, 2147483811, 2147483810, 2147483809, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
- "height":17,
- "id":1,
- "name":"furniture",
- "opacity":1,
- "type":"tilelayer",
- "visible":true,
- "width":31,
- "x":0,
- "y":0
- },
- {
- "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2147483909, 261, 0, 0, 0, 0, 2147483909, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2147483909, 261, 0, 0, 0, 0, 2147483909, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 166, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 231, 231, 231, 231, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
- "height":17,
- "id":33,
- "name":"aboveFurniture",
- "opacity":1,
- "type":"tilelayer",
- "visible":true,
- "width":31,
- "x":0,
- "y":0
- },
- {
- "draworder":"topdown",
- "id":2,
- "name":"floorLayer",
- "objects":[
- {
- "height":64,
- "id":4,
- "name":"clockPopup",
- "rotation":0,
- "type":"",
- "visible":true,
- "width":128,
- "x":512,
- "y":0
- },
- {
- "height":39.2648412257873,
- "id":9,
- "name":"jitsiChillZone",
- "properties":[
- {
- "name":"jitsiRoom",
- "type":"string",
- "value":"MeetingRoom"
- },
- {
- "name":"jitsiTrigger",
- "type":"string",
- "value":"onaction"
- }],
- "rotation":0.513253840280061,
- "type":"",
- "visible":true,
- "width":76.5390990955655,
- "x":59.0274706237854,
- "y":91.8390566468795
- },
- {
- "height":179.413785031117,
- "id":10,
- "name":"focusableChillZone",
- "properties":[
- {
- "name":"focusOn",
- "type":"bool",
- "value":true
- },
- {
- "name":"focusable",
- "type":"bool",
- "value":true
- },
- {
- "name":"jitsiRoom",
- "type":"string",
- "value":"MeetingRoom"
- },
- {
- "name":"jitsiTrigger",
- "type":"string",
- "value":"onaction"
- }],
- "rotation":0.513254,
- "type":"",
- "visible":true,
- "width":283.802849832786,
- "x":316.73045,
- "y":255.367599999999
- },
- {
- "height":119,
- "id":11,
- "name":"",
- "properties":[
- {
- "name":"silent",
- "type":"bool",
- "value":true
- }],
- "rotation":0,
- "type":"",
- "visible":true,
- "width":214,
- "x":745,
- "y":329
- },
- {
- "height":0,
- "id":13,
- "name":"",
- "rotation":0,
- "type":"",
- "visible":true,
- "width":0,
- "x":358,
- "y":629
- }],
- "opacity":1,
- "type":"objectgroup",
- "visible":true,
- "x":0,
- "y":0
- },
- {
- "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 329, 329, 0, 0, 0, 0, 329, 329, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 206, 209, 209, 209, 209, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 428, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2147483801, 2147483800, 2147483799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
- "height":17,
- "id":3,
- "name":"abovePlayer1",
- "opacity":1,
- "type":"tilelayer",
- "visible":true,
- "width":31,
- "x":0,
- "y":0
- },
- {
- "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 399, 400, 399, 400, 399, 400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 410, 411, 410, 411, 410, 411, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
- "height":17,
- "id":27,
- "name":"abovePlayer2",
- "opacity":1,
- "type":"tilelayer",
- "visible":true,
- "width":31,
- "x":0,
- "y":0
- },
- {
- "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 401, 402, 401, 402, 401, 402, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 412, 413, 412, 413, 412, 413, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
- "height":17,
- "id":28,
- "name":"abovePlayer3",
- "opacity":1,
- "type":"tilelayer",
- "visible":true,
- "width":31,
- "x":0,
- "y":0
- }],
- "nextlayerid":39,
- "nextobjectid":14,
- "orientation":"orthogonal",
- "properties":[
- {
- "name":"mapCopyright",
- "type":"string",
- "value":"Credits: Valdo Romao https:\/\/www.linkedin.com\/in\/valdo-romao\/ \nLicense: CC-BY-SA 3.0 (http:\/\/creativecommons.org\/licenses\/by-sa\/3.0\/)"
- },
- {
- "name":"mapDescription",
- "type":"string",
- "value":"A perfect virtual office to get started with WorkAdventure!"
- },
- {
- "name":"mapImage",
- "type":"string",
- "value":"map.png"
- },
- {
- "name":"mapLink",
- "type":"string",
- "value":"https:\/\/thecodingmachine.github.io\/workadventure-map-starter-kit\/map.json"
- },
- {
- "name":"mapName",
- "type":"string",
- "value":"Starter kit"
- },
- {
- "name":"script",
- "type":"string",
- "value":"..\/dist\/script.js"
- }],
- "renderorder":"right-down",
- "tiledversion":"1.7.2",
- "tileheight":32,
- "tilesets":[
- {
- "columns":10,
- "firstgid":1,
- "image":"..\/assets\/tileset5_export.png",
- "imageheight":320,
- "imagewidth":320,
- "margin":0,
- "name":"tileset5_export",
- "properties":[
- {
- "name":"tilesetCopyright",
- "type":"string",
- "value":"\u00a9 2021 WorkAdventure \nLicence: WORKADVENTURE SPECIFIC RESOURCES LICENSE (see LICENSE.assets file)"
- }],
- "spacing":0,
- "tilecount":100,
- "tileheight":32,
- "tilewidth":32
- },
- {
- "columns":10,
- "firstgid":101,
- "image":"..\/assets\/tileset6_export.png",
- "imageheight":320,
- "imagewidth":320,
- "margin":0,
- "name":"tileset6_export",
- "properties":[
- {
- "name":"tilesetCopyright",
- "type":"string",
- "value":"\u00a9 2021 WorkAdventure \nLicence: WORKADVENTURE SPECIFIC RESOURCES LICENSE (see LICENSE.assets file)"
- }],
- "spacing":0,
- "tilecount":100,
- "tileheight":32,
- "tilewidth":32
- },
- {
- "columns":11,
- "firstgid":201,
- "image":"..\/assets\/tileset1.png",
- "imageheight":352,
- "imagewidth":352,
- "margin":0,
- "name":"tileset1",
- "properties":[
- {
- "name":"tilesetCopyright",
- "type":"string",
- "value":"\u00a9 2021 WorkAdventure \nLicence: WORKADVENTURE SPECIFIC RESOURCES LICENSE (see LICENSE.assets file)"
- }],
- "spacing":0,
- "tilecount":121,
- "tileheight":32,
- "tilewidth":32
- },
- {
- "columns":11,
- "firstgid":322,
- "image":"..\/assets\/tileset1-repositioning.png",
- "imageheight":352,
- "imagewidth":352,
- "margin":0,
- "name":"tileset1-repositioning",
- "properties":[
- {
- "name":"tilesetCopyright",
- "type":"string",
- "value":"\u00a9 2021 WorkAdventure \nLicence: WORKADVENTURE SPECIFIC RESOURCES LICENSE (see LICENSE.assets file)"
- }],
- "spacing":0,
- "tilecount":121,
- "tileheight":32,
- "tilewidth":32
- },
- {
- "columns":6,
- "firstgid":443,
- "image":"..\/assets\/Special_Zones.png",
- "imageheight":64,
- "imagewidth":192,
- "margin":0,
- "name":"Special_Zones",
- "properties":[
- {
- "name":"tilesetCopyright",
- "type":"string",
- "value":"\u00a9 2021 WorkAdventure \nLicence: WORKADVENTURE SPECIFIC RESOURCES LICENSE (see LICENSE.assets file)"
- }],
- "spacing":0,
- "tilecount":12,
- "tileheight":32,
- "tiles":[
- {
- "id":0,
- "properties":[
- {
- "name":"collides",
- "type":"bool",
- "value":true
- }]
- }],
- "tilewidth":32
- }],
- "tilewidth":32,
- "type":"map",
- "version":"1.6",
- "width":31
+{ "compressionlevel":-1,
+ "height":17,
+ "infinite":false,
+ "layers":[
+ {
+ "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 444, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 444, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 444, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+ "height":17,
+ "id":6,
+ "name":"start",
+ "opacity":1,
+ "type":"tilelayer",
+ "visible":true,
+ "width":31,
+ "x":0,
+ "y":0
+ },
+ {
+ "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 0, 0, 443, 443, 443, 0, 0, 443, 443, 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, 443, 443, 0, 0, 0, 0, 443, 443, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 443, 443, 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, 443, 443, 0, 0, 0, 0, 443, 443, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 443, 443, 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, 443, 443, 0, 0, 0, 0, 443, 443, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 443, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 443, 0, 0, 0, 0, 443, 443, 0, 0, 0, 0, 0, 0, 0, 443, 443, 0, 0, 443, 443, 443, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 443, 0, 0, 443, 443, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 443, 0, 0, 443, 443, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 443, 0, 0, 443, 443, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 443, 443, 443, 443, 443, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 443, 443, 443, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 443, 443, 443, 443, 443, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 443, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 443, 443, 0, 0, 0, 0, 0, 0, 0, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+ "height":17,
+ "id":7,
+ "name":"collisions",
+ "opacity":1,
+ "type":"tilelayer",
+ "visible":true,
+ "width":31,
+ "x":0,
+ "y":0
+ },
+ {
+ "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+ "height":17,
+ "id":29,
+ "name":"jitsiMeetingRoom",
+ "opacity":1,
+ "properties":[
+ {
+ "name":"jitsiRoom",
+ "type":"string",
+ "value":"MeetingRoom"
+ }],
+ "type":"tilelayer",
+ "visible":true,
+ "width":31,
+ "x":0,
+ "y":0
+ },
+ {
+ "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+ "height":17,
+ "id":38,
+ "name":"jitsiChillzone",
+ "opacity":1,
+ "properties":[
+ {
+ "name":"jitsiRoom",
+ "type":"string",
+ "value":"ChillZone"
+ },
+ {
+ "name":"jitsiTrigger",
+ "type":"string",
+ "value":"onaction"
+ }],
+ "type":"tilelayer",
+ "visible":true,
+ "width":31,
+ "x":0,
+ "y":0
+ },
+ {
+ "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 446, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+ "height":17,
+ "id":23,
+ "name":"clockZone",
+ "opacity":1,
+ "properties":[
+ {
+ "name":"zone",
+ "type":"string",
+ "value":"clock"
+ }],
+ "type":"tilelayer",
+ "visible":true,
+ "width":31,
+ "x":0,
+ "y":0
+ },
+ {
+ "data":[201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 223, 223, 223, 223, 223, 223, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 223, 223, 223, 223, 223, 223, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 223, 223, 223, 223, 223, 223, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 223, 223, 223, 223, 223, 223, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201],
+ "height":17,
+ "id":4,
+ "name":"floor",
+ "opacity":1,
+ "type":"tilelayer",
+ "visible":true,
+ "width":31,
+ "x":0,
+ "y":0
+ },
+ {
+ "data":[49, 58, 58, 58, 58, 58, 58, 42, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 42, 57, 57, 57, 57, 57, 57, 57, 50, 45, 63, 63, 63, 63, 63, 63, 45, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 45, 63, 63, 63, 63, 63, 63, 63, 45, 45, 73, 73, 73, 73, 73, 73, 45, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 45, 73, 73, 73, 73, 73, 73, 73, 45, 45, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 45, 59, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 32, 58, 58, 58, 58, 58, 58, 58, 60, 83, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 84, 93, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 94],
+ "height":17,
+ "id":9,
+ "name":"walls",
+ "opacity":1,
+ "type":"tilelayer",
+ "visible":true,
+ "width":31,
+ "x":0,
+ "y":0
+ },
+ {
+ "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, 0, 293, 0, 107, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 107, 0, 0, 128, 1, 2, 3, 0, 0, 0, 0, 304, 296, 297, 296, 297, 304, 0, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, 0, 0, 0, 11, 12, 13, 0, 0, 0, 0, 315, 307, 308, 307, 308, 315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 22, 23, 0, 0, 0, 0, 243, 0, 0, 0, 0, 2147483943, 0, 0, 0, 325, 340, 340, 326, 0, 0, 325, 340, 340, 326, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 244, 0, 283, 283, 0, 2147483954, 0, 0, 0, 0, 340, 340, 0, 0, 0, 0, 340, 340, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 294, 294, 0, 0, 0, 0, 0, 325, 340, 340, 326, 0, 0, 325, 340, 340, 326, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 0, 0, 0, 0, 351, 351, 0, 0, 0, 0, 0, 0, 325, 273, 275, 326, 0, 0, 0, 394, 395, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 325, 2147483923, 275, 326, 0, 0, 0, 405, 406, 0, 0, 0, 0, 0, 0, 0, 0, 0, 333, 334, 333, 334, 333, 334, 0, 0, 0, 0, 0, 0, 0, 325, 2147483923, 275, 326, 0, 0, 0, 416, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 344, 345, 344, 345, 344, 345, 0, 0, 0, 0, 0, 0, 0, 325, 2147483923, 275, 326, 0, 0, 0, 427, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 217, 220, 220, 220, 220, 218, 0, 0, 0, 0, 0, 0, 0, 0, 284, 286, 0, 0, 0, 0, 438, 439, 0, 0, 0, 0, 0, 0, 0, 0, 0, 335, 336, 335, 336, 335, 336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 346, 347, 346, 347, 346, 347, 0, 2147483811, 2147483810, 2147483809, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+ "height":17,
+ "id":1,
+ "name":"furniture",
+ "opacity":1,
+ "type":"tilelayer",
+ "visible":true,
+ "width":31,
+ "x":0,
+ "y":0
+ },
+ {
+ "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2147483909, 261, 0, 0, 0, 0, 2147483909, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2147483909, 261, 0, 0, 0, 0, 2147483909, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 166, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 231, 231, 231, 231, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+ "height":17,
+ "id":33,
+ "name":"aboveFurniture",
+ "opacity":1,
+ "type":"tilelayer",
+ "visible":true,
+ "width":31,
+ "x":0,
+ "y":0
+ },
+ {
+ "draworder":"topdown",
+ "id":2,
+ "name":"floorLayer",
+ "objects":[
+ {
+ "height":64,
+ "id":4,
+ "name":"clockPopup",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":128,
+ "x":512,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ },
+ {
+ "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 329, 329, 0, 0, 0, 0, 329, 329, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 206, 209, 209, 209, 209, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 428, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2147483801, 2147483800, 2147483799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+ "height":17,
+ "id":3,
+ "name":"abovePlayer1",
+ "opacity":1,
+ "type":"tilelayer",
+ "visible":true,
+ "width":31,
+ "x":0,
+ "y":0
+ },
+ {
+ "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 399, 400, 399, 400, 399, 400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 410, 411, 410, 411, 410, 411, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+ "height":17,
+ "id":27,
+ "name":"abovePlayer2",
+ "opacity":1,
+ "type":"tilelayer",
+ "visible":true,
+ "width":31,
+ "x":0,
+ "y":0
+ },
+ {
+ "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 401, 402, 401, 402, 401, 402, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 412, 413, 412, 413, 412, 413, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+ "height":17,
+ "id":28,
+ "name":"abovePlayer3",
+ "opacity":1,
+ "type":"tilelayer",
+ "visible":true,
+ "width":31,
+ "x":0,
+ "y":0
+ }],
+ "nextlayerid":39,
+ "nextobjectid":9,
+ "orientation":"orthogonal",
+ "properties":[
+ {
+ "name":"mapCopyright",
+ "type":"string",
+ "value":"Credits: Valdo Romao https:\/\/www.linkedin.com\/in\/valdo-romao\/ \nLicense: CC-BY-SA 3.0 (http:\/\/creativecommons.org\/licenses\/by-sa\/3.0\/)"
+ },
+ {
+ "name":"mapDescription",
+ "type":"string",
+ "value":"A perfect virtual office to get started with WorkAdventure!"
+ },
+ {
+ "name":"mapImage",
+ "type":"string",
+ "value":"map.png"
+ },
+ {
+ "name":"mapLink",
+ "type":"string",
+ "value":"https:\/\/thecodingmachine.github.io\/workadventure-map-starter-kit\/map.json"
+ },
+ {
+ "name":"mapName",
+ "type":"string",
+ "value":"Starter kit"
+ },
+ {
+ "name":"script",
+ "type":"string",
+ "value":"..\/dist\/script.js"
+ }],
+ "renderorder":"right-down",
+ "tiledversion":"1.7.0",
+ "tileheight":32,
+ "tilesets":[
+ {
+ "columns":10,
+ "firstgid":1,
+ "image":"..\/assets\/tileset5_export.png",
+ "imageheight":320,
+ "imagewidth":320,
+ "margin":0,
+ "name":"tileset5_export",
+ "properties":[
+ {
+ "name":"tilesetCopyright",
+ "type":"string",
+ "value":"\u00a9 2021 WorkAdventure \nLicence: WORKADVENTURE SPECIFIC RESOURCES LICENSE (see LICENSE.assets file)"
+ }],
+ "spacing":0,
+ "tilecount":100,
+ "tileheight":32,
+ "tilewidth":32
+ },
+ {
+ "columns":10,
+ "firstgid":101,
+ "image":"..\/assets\/tileset6_export.png",
+ "imageheight":320,
+ "imagewidth":320,
+ "margin":0,
+ "name":"tileset6_export",
+ "properties":[
+ {
+ "name":"tilesetCopyright",
+ "type":"string",
+ "value":"\u00a9 2021 WorkAdventure \nLicence: WORKADVENTURE SPECIFIC RESOURCES LICENSE (see LICENSE.assets file)"
+ }],
+ "spacing":0,
+ "tilecount":100,
+ "tileheight":32,
+ "tilewidth":32
+ },
+ {
+ "columns":11,
+ "firstgid":201,
+ "image":"..\/assets\/tileset1.png",
+ "imageheight":352,
+ "imagewidth":352,
+ "margin":0,
+ "name":"tileset1",
+ "properties":[
+ {
+ "name":"tilesetCopyright",
+ "type":"string",
+ "value":"\u00a9 2021 WorkAdventure \nLicence: WORKADVENTURE SPECIFIC RESOURCES LICENSE (see LICENSE.assets file)"
+ }],
+ "spacing":0,
+ "tilecount":121,
+ "tileheight":32,
+ "tilewidth":32
+ },
+ {
+ "columns":11,
+ "firstgid":322,
+ "image":"..\/assets\/tileset1-repositioning.png",
+ "imageheight":352,
+ "imagewidth":352,
+ "margin":0,
+ "name":"tileset1-repositioning",
+ "properties":[
+ {
+ "name":"tilesetCopyright",
+ "type":"string",
+ "value":"\u00a9 2021 WorkAdventure \nLicence: WORKADVENTURE SPECIFIC RESOURCES LICENSE (see LICENSE.assets file)"
+ }],
+ "spacing":0,
+ "tilecount":121,
+ "tileheight":32,
+ "tilewidth":32
+ },
+ {
+ "columns":6,
+ "firstgid":443,
+ "image":"..\/assets\/Special_Zones.png",
+ "imageheight":64,
+ "imagewidth":192,
+ "margin":0,
+ "name":"Special_Zones",
+ "properties":[
+ {
+ "name":"tilesetCopyright",
+ "type":"string",
+ "value":"\u00a9 2021 WorkAdventure \nLicence: WORKADVENTURE SPECIFIC RESOURCES LICENSE (see LICENSE.assets file)"
+ }],
+ "spacing":0,
+ "tilecount":12,
+ "tileheight":32,
+ "tiles":[
+ {
+ "id":0,
+ "properties":[
+ {
+ "name":"collides",
+ "type":"bool",
+ "value":true
+ }]
+ }],
+ "tilewidth":32
+ }],
+ "tilewidth":32,
+ "type":"map",
+ "version":"1.6",
+ "width":31
}
\ No newline at end of file
diff --git a/maps/tests/index.html b/maps/tests/index.html
index e625aa6d..ddb1959a 100644
--- a/maps/tests/index.html
+++ b/maps/tests/index.html
@@ -168,6 +168,14 @@
Layer visibility + Layer size and offset
+
+
+ Success Failure Pending
+ |
+
+ Test Tiled Objects with properties
+ |
+
Iframe API
diff --git a/maps/tests/tiled_objects.json b/maps/tests/tiled_objects.json
new file mode 100644
index 00000000..f59380fd
--- /dev/null
+++ b/maps/tests/tiled_objects.json
@@ -0,0 +1,268 @@
+{ "compressionlevel":-1,
+ "height":17,
+ "infinite":false,
+ "layers":[
+ {
+ "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 444, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 444, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 444, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+ "height":17,
+ "id":6,
+ "name":"start",
+ "opacity":1,
+ "type":"tilelayer",
+ "visible":true,
+ "width":31,
+ "x":0,
+ "y":0
+ },
+ {
+ "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 443, 443, 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 443, 443, 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 443, 443, 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 443, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 443, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 443, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+ "height":17,
+ "id":7,
+ "name":"collisions",
+ "opacity":1,
+ "type":"tilelayer",
+ "visible":true,
+ "width":31,
+ "x":0,
+ "y":0
+ },
+ {
+ "data":[201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 223, 223, 223, 223, 223, 223, 201, 201, 201, 201, 201, 234, 234, 234, 234, 234, 234, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 223, 223, 223, 223, 223, 223, 201, 201, 201, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 223, 223, 223, 223, 223, 223, 201, 201, 201, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 223, 223, 223, 223, 223, 223, 201, 201, 201, 201, 201, 234, 234, 234, 234, 234, 234, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 234, 234, 234, 234, 234, 234, 234, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 234, 234, 234, 234, 234, 234, 234, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 234, 234, 234, 234, 234, 234, 234, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201],
+ "height":17,
+ "id":4,
+ "name":"floor",
+ "opacity":1,
+ "type":"tilelayer",
+ "visible":true,
+ "width":31,
+ "x":0,
+ "y":0
+ },
+ {
+ "data":[49, 58, 58, 58, 58, 58, 58, 42, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 42, 57, 57, 57, 57, 57, 57, 57, 50, 45, 63, 63, 63, 63, 63, 63, 45, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 45, 63, 63, 63, 63, 63, 63, 63, 45, 45, 73, 73, 73, 73, 73, 73, 45, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 45, 73, 73, 73, 73, 73, 73, 73, 45, 45, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 45, 59, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 32, 58, 58, 58, 58, 58, 58, 58, 60, 83, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 84, 93, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 94],
+ "height":17,
+ "id":9,
+ "name":"walls",
+ "opacity":1,
+ "type":"tilelayer",
+ "visible":true,
+ "width":31,
+ "x":0,
+ "y":0
+ },
+ {
+ "draworder":"topdown",
+ "id":2,
+ "name":"floorLayer",
+ "objects":[
+ {
+ "ellipse":true,
+ "height":128,
+ "id":9,
+ "name":"",
+ "properties":[
+ {
+ "name":"jitsiRoom",
+ "type":"string",
+ "value":"Chill Room"
+ },
+ {
+ "name":"jitsiTrigger",
+ "type":"string",
+ "value":"onaction"
+ }],
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":320,
+ "x":317.331510594668,
+ "y":97.6404647983595
+ },
+ {
+ "height":130.187286397813,
+ "id":11,
+ "name":"",
+ "properties":[
+ {
+ "name":"jitsiRoom",
+ "type":"string",
+ "value":"MeetingRoom"
+ }],
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":192.568694463431,
+ "x":30.738664843928,
+ "y":94.0241512873092
+ },
+ {
+ "height":95.8323080428344,
+ "id":12,
+ "name":"",
+ "properties":[
+ {
+ "name":"silent",
+ "type":"bool",
+ "value":true
+ }],
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":225.115516062885,
+ "x":735.919799498747,
+ "y":354.398724082935
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ }],
+ "nextlayerid":39,
+ "nextobjectid":13,
+ "orientation":"orthogonal",
+ "properties":[
+ {
+ "name":"mapCopyright",
+ "type":"string",
+ "value":"Credits: Valdo Romao https:\/\/www.linkedin.com\/in\/valdo-romao\/ \nLicense: CC-BY-SA 3.0 (http:\/\/creativecommons.org\/licenses\/by-sa\/3.0\/)"
+ },
+ {
+ "name":"mapDescription",
+ "type":"string",
+ "value":"A perfect virtual office to get started with WorkAdventure!"
+ },
+ {
+ "name":"mapImage",
+ "type":"string",
+ "value":"map.png"
+ },
+ {
+ "name":"mapLink",
+ "type":"string",
+ "value":"https:\/\/thecodingmachine.github.io\/workadventure-map-starter-kit\/map.json"
+ },
+ {
+ "name":"mapName",
+ "type":"string",
+ "value":"Starter kit"
+ },
+ {
+ "name":"script",
+ "type":"string",
+ "value":"..\/dist\/script.js"
+ }],
+ "renderorder":"right-down",
+ "tiledversion":"1.7.2",
+ "tileheight":32,
+ "tilesets":[
+ {
+ "columns":10,
+ "firstgid":1,
+ "image":"..\/assets\/tileset5_export.png",
+ "imageheight":320,
+ "imagewidth":320,
+ "margin":0,
+ "name":"tileset5_export",
+ "properties":[
+ {
+ "name":"tilesetCopyright",
+ "type":"string",
+ "value":"\u00a9 2021 WorkAdventure \nLicence: WORKADVENTURE SPECIFIC RESOURCES LICENSE (see LICENSE.assets file)"
+ }],
+ "spacing":0,
+ "tilecount":100,
+ "tileheight":32,
+ "tilewidth":32
+ },
+ {
+ "columns":10,
+ "firstgid":101,
+ "image":"..\/assets\/tileset6_export.png",
+ "imageheight":320,
+ "imagewidth":320,
+ "margin":0,
+ "name":"tileset6_export",
+ "properties":[
+ {
+ "name":"tilesetCopyright",
+ "type":"string",
+ "value":"\u00a9 2021 WorkAdventure \nLicence: WORKADVENTURE SPECIFIC RESOURCES LICENSE (see LICENSE.assets file)"
+ }],
+ "spacing":0,
+ "tilecount":100,
+ "tileheight":32,
+ "tilewidth":32
+ },
+ {
+ "columns":11,
+ "firstgid":201,
+ "image":"..\/assets\/tileset1.png",
+ "imageheight":352,
+ "imagewidth":352,
+ "margin":0,
+ "name":"tileset1",
+ "properties":[
+ {
+ "name":"tilesetCopyright",
+ "type":"string",
+ "value":"\u00a9 2021 WorkAdventure \nLicence: WORKADVENTURE SPECIFIC RESOURCES LICENSE (see LICENSE.assets file)"
+ }],
+ "spacing":0,
+ "tilecount":121,
+ "tileheight":32,
+ "tilewidth":32
+ },
+ {
+ "columns":11,
+ "firstgid":322,
+ "image":"..\/assets\/tileset1-repositioning.png",
+ "imageheight":352,
+ "imagewidth":352,
+ "margin":0,
+ "name":"tileset1-repositioning",
+ "properties":[
+ {
+ "name":"tilesetCopyright",
+ "type":"string",
+ "value":"\u00a9 2021 WorkAdventure \nLicence: WORKADVENTURE SPECIFIC RESOURCES LICENSE (see LICENSE.assets file)"
+ }],
+ "spacing":0,
+ "tilecount":121,
+ "tileheight":32,
+ "tilewidth":32
+ },
+ {
+ "columns":6,
+ "firstgid":443,
+ "image":"..\/assets\/Special_Zones.png",
+ "imageheight":64,
+ "imagewidth":192,
+ "margin":0,
+ "name":"Special_Zones",
+ "properties":[
+ {
+ "name":"tilesetCopyright",
+ "type":"string",
+ "value":"\u00a9 2021 WorkAdventure \nLicence: WORKADVENTURE SPECIFIC RESOURCES LICENSE (see LICENSE.assets file)"
+ }],
+ "spacing":0,
+ "tilecount":12,
+ "tileheight":32,
+ "tiles":[
+ {
+ "id":0,
+ "properties":[
+ {
+ "name":"collides",
+ "type":"bool",
+ "value":true
+ }]
+ }],
+ "tilewidth":32
+ }],
+ "tilewidth":32,
+ "type":"map",
+ "version":"1.6",
+ "width":31
+}
\ No newline at end of file
From 255f4375daab7be0ed1cb3d18997c7225fdb4e57 Mon Sep 17 00:00:00 2001
From: Piotr 'pwh' Hanusiak
Date: Mon, 11 Apr 2022 16:16:52 +0200
Subject: [PATCH 04/25] go from zones to area name for interactive Tiled
Objects
---
...{ChangeZoneEvent.ts => ChangeAreaEvent.ts} | 4 +-
front/src/Api/Events/IframeEvent.ts | 6 +-
front/src/Api/IframeListener.ts | 18 ++---
front/src/Phaser/Game/GameMap.ts | 77 ++++++++++---------
front/src/Phaser/Game/GameScene.ts | 30 ++++----
maps/tests/tiled_objects.json | 27 +++++--
6 files changed, 90 insertions(+), 72 deletions(-)
rename front/src/Api/Events/{ChangeZoneEvent.ts => ChangeAreaEvent.ts} (64%)
diff --git a/front/src/Api/Events/ChangeZoneEvent.ts b/front/src/Api/Events/ChangeAreaEvent.ts
similarity index 64%
rename from front/src/Api/Events/ChangeZoneEvent.ts
rename to front/src/Api/Events/ChangeAreaEvent.ts
index e7ca3668..0ad7decb 100644
--- a/front/src/Api/Events/ChangeZoneEvent.ts
+++ b/front/src/Api/Events/ChangeAreaEvent.ts
@@ -1,6 +1,6 @@
import * as tg from "generic-type-guard";
-export const isChangeZoneEvent = new tg.IsInterface()
+export const isChangeAreaEvent = new tg.IsInterface()
.withProperties({
name: tg.isString,
})
@@ -8,4 +8,4 @@ export const isChangeZoneEvent = new tg.IsInterface()
/**
* A message sent from the game to the iFrame when a user enters or leaves a zone.
*/
-export type ChangeZoneEvent = tg.GuardedType;
+export type ChangeAreaEvent = tg.GuardedType;
diff --git a/front/src/Api/Events/IframeEvent.ts b/front/src/Api/Events/IframeEvent.ts
index 9daccbec..2f92161f 100644
--- a/front/src/Api/Events/IframeEvent.ts
+++ b/front/src/Api/Events/IframeEvent.ts
@@ -31,7 +31,7 @@ import type { MenuRegisterEvent, UnregisterMenuEvent } from "./ui/MenuRegisterEv
import type { ChangeLayerEvent } from "./ChangeLayerEvent";
import { isPlayerPosition } from "./PlayerPosition";
import type { WasCameraUpdatedEvent } from "./WasCameraUpdatedEvent";
-import type { ChangeZoneEvent } from "./ChangeZoneEvent";
+import type { ChangeAreaEvent } from "./ChangeAreaEvent";
import type { CameraSetEvent } from "./CameraSetEvent";
import type { CameraFollowPlayerEvent } from "./CameraFollowPlayerEvent";
import { isColorEvent } from "./ColorEvent";
@@ -95,8 +95,8 @@ export interface IframeResponseEventMap {
leaveEvent: EnterLeaveEvent;
enterLayerEvent: ChangeLayerEvent;
leaveLayerEvent: ChangeLayerEvent;
- enterZoneEvent: ChangeZoneEvent;
- leaveZoneEvent: ChangeZoneEvent;
+ enterAreaEvent: ChangeAreaEvent;
+ leaveAreaEvent: ChangeAreaEvent;
buttonClickedEvent: ButtonClickedEvent;
remotePlayerClickedEvent: RemotePlayerClickedEvent;
actionsMenuActionClickedEvent: ActionsMenuActionClickedEvent;
diff --git a/front/src/Api/IframeListener.ts b/front/src/Api/IframeListener.ts
index e3609b9f..c78c5909 100644
--- a/front/src/Api/IframeListener.ts
+++ b/front/src/Api/IframeListener.ts
@@ -31,7 +31,7 @@ import { ModifyEmbeddedWebsiteEvent, isEmbeddedWebsiteEvent } from "./Events/Emb
import { handleMenuRegistrationEvent, handleMenuUnregisterEvent } from "../Stores/MenuStore";
import type { ChangeLayerEvent } from "./Events/ChangeLayerEvent";
import type { WasCameraUpdatedEvent } from "./Events/WasCameraUpdatedEvent";
-import type { ChangeZoneEvent } from "./Events/ChangeZoneEvent";
+import type { ChangeAreaEvent } from "./Events/ChangeAreaEvent";
import { CameraSetEvent, isCameraSetEvent } from "./Events/CameraSetEvent";
import { CameraFollowPlayerEvent, isCameraFollowPlayerEvent } from "./Events/CameraFollowPlayerEvent";
import type { RemotePlayerClickedEvent } from "./Events/RemotePlayerClickedEvent";
@@ -441,21 +441,21 @@ class IframeListener {
});
}
- sendEnterZoneEvent(zoneName: string) {
+ sendEnterAreaEvent(areaName: string) {
this.postMessage({
- type: "enterZoneEvent",
+ type: "enterAreaEvent",
data: {
- name: zoneName,
- } as ChangeZoneEvent,
+ name: areaName,
+ } as ChangeAreaEvent,
});
}
- sendLeaveZoneEvent(zoneName: string) {
+ sendLeaveAreaEvent(areaName: string) {
this.postMessage({
- type: "leaveZoneEvent",
+ type: "leaveAreaEvent",
data: {
- name: zoneName,
- } as ChangeZoneEvent,
+ name: areaName,
+ } as ChangeAreaEvent,
});
}
diff --git a/front/src/Phaser/Game/GameMap.ts b/front/src/Phaser/Game/GameMap.ts
index ce6e2711..8894d726 100644
--- a/front/src/Phaser/Game/GameMap.ts
+++ b/front/src/Phaser/Game/GameMap.ts
@@ -22,9 +22,9 @@ export type layerChangeCallback = (
allLayersOnNewPosition: Array
) => void;
-export type zoneChangeCallback = (
- zonesChangedByAction: Array,
- allZonesOnNewPosition: Array
+export type areaChangeCallback = (
+ areasChangedByAction: Array,
+ allAreasOnNewPosition: Array
) => void;
/**
@@ -54,8 +54,8 @@ export class GameMap {
private enterLayerCallbacks = Array();
private leaveLayerCallbacks = Array();
- private enterZoneCallbacks = Array();
- private leaveZoneCallbacks = Array();
+ private enterAreaCallbacks = Array();
+ private leaveAreaCallbacks = Array();
private tileNameMap = new Map();
@@ -63,7 +63,7 @@ export class GameMap {
public readonly flatLayers: ITiledMapLayer[];
public readonly tiledObjects: ITiledMapObject[];
public readonly phaserLayers: TilemapLayer[] = [];
- public readonly zones: ITiledMapObject[] = [];
+ public readonly areas: ITiledMapObject[] = [];
public exitUrls: Array = [];
@@ -76,7 +76,8 @@ export class GameMap {
) {
this.flatLayers = flattenGroupLayersMap(map);
this.tiledObjects = this.getObjectsFromLayers(this.flatLayers);
- this.zones = this.tiledObjects.filter((object) => object.width > 0);
+ // NOTE: We leave "zone" for legacy reasons
+ this.areas = this.tiledObjects.filter((object) => ["zone", "area"].includes(object.type));
let depth = -2;
for (const layer of this.flatLayers) {
@@ -148,7 +149,7 @@ export class GameMap {
public setPosition(x: number, y: number) {
this.oldPosition = this.position;
this.position = { x, y };
- this.triggerZonesChange();
+ this.triggerAreasChange();
this.oldKey = this.key;
@@ -201,17 +202,17 @@ export class GameMap {
}
/**
- * Registers a callback called when the user moves inside another zone.
+ * Registers a callback called when the user moves inside another area.
*/
- public onEnterZone(callback: zoneChangeCallback) {
- this.enterZoneCallbacks.push(callback);
+ public onEnterArea(callback: areaChangeCallback) {
+ this.enterAreaCallbacks.push(callback);
}
/**
- * Registers a callback called when the user moves outside another zone.
+ * Registers a callback called when the user moves outside another area.
*/
- public onLeaveZone(callback: zoneChangeCallback) {
- this.leaveZoneCallbacks.push(callback);
+ public onLeaveArea(callback: areaChangeCallback) {
+ this.leaveAreaCallbacks.push(callback);
}
public findLayer(layerName: string): ITiledMapLayer | undefined {
@@ -420,33 +421,33 @@ export class GameMap {
}
/**
- * We use Tiled Objects with type "zone" as zones with defined x, y, width and height for easier event triggering.
+ * We use Tiled Objects with type "area" as areas with defined x, y, width and height for easier event triggering.
*/
- private triggerZonesChange(): void {
- const zonesByOldPosition = this.getZonesOnPosition(this.oldPosition);
- const zonesByNewPosition = this.getZonesOnPosition(this.position);
+ private triggerAreasChange(): void {
+ const areasByOldPosition = this.getAreasOnPosition(this.oldPosition);
+ const areasByNewPosition = this.getAreasOnPosition(this.position);
- const enterZones = new Set(zonesByNewPosition);
- const leaveZones = new Set(zonesByOldPosition);
+ const enterAreas = new Set(areasByNewPosition);
+ const leaveAreas = new Set(areasByOldPosition);
- enterZones.forEach((zone) => {
- if (leaveZones.has(zone)) {
- leaveZones.delete(zone);
- enterZones.delete(zone);
+ enterAreas.forEach((area) => {
+ if (leaveAreas.has(area)) {
+ leaveAreas.delete(area);
+ enterAreas.delete(area);
}
});
- if (enterZones.size > 0) {
- const zonesArray = Array.from(enterZones);
- for (const callback of this.enterZoneCallbacks) {
- callback(zonesArray, zonesByNewPosition);
+ if (enterAreas.size > 0) {
+ const areasArray = Array.from(enterAreas);
+ for (const callback of this.enterAreaCallbacks) {
+ callback(areasArray, areasByNewPosition);
}
}
- if (leaveZones.size > 0) {
- const zonesArray = Array.from(leaveZones);
- for (const callback of this.leaveZoneCallbacks) {
- callback(zonesArray, zonesByNewPosition);
+ if (leaveAreas.size > 0) {
+ const areasArray = Array.from(leaveAreas);
+ for (const callback of this.leaveAreaCallbacks) {
+ callback(areasArray, areasByNewPosition);
}
}
}
@@ -454,9 +455,9 @@ export class GameMap {
private getProperties(key: number): Map {
const properties = new Map();
- for (const zone of this.getZonesOnPosition(this.position)) {
- if (zone.properties !== undefined) {
- for (const property of zone.properties) {
+ for (const area of this.getAreasOnPosition(this.position)) {
+ if (area.properties !== undefined) {
+ for (const property of area.properties) {
if (property.value === undefined) {
continue;
}
@@ -503,13 +504,13 @@ export class GameMap {
return properties;
}
- private getZonesOnPosition(position?: { x: number; y: number }): ITiledMapObject[] {
+ private getAreasOnPosition(position?: { x: number; y: number }): ITiledMapObject[] {
return position
- ? this.zones.filter((zone) => {
+ ? this.areas.filter((area) => {
if (!position) {
return false;
}
- return MathUtils.isOverlappingWithRectangle(position, zone);
+ return MathUtils.isOverlappingWithRectangle(position, area);
})
: [];
}
diff --git a/front/src/Phaser/Game/GameScene.ts b/front/src/Phaser/Game/GameScene.ts
index 210cfba1..7478540d 100644
--- a/front/src/Phaser/Game/GameScene.ts
+++ b/front/src/Phaser/Game/GameScene.ts
@@ -892,42 +892,42 @@ export class GameScene extends DirtyScene {
});
});
- this.gameMap.onEnterZone((zones) => {
- for (const zone of zones) {
- const focusable = zone.properties?.find(
+ this.gameMap.onEnterArea((areas) => {
+ for (const area of areas) {
+ const focusable = area.properties?.find(
(property) => property.name === GameMapProperties.FOCUSABLE
);
if (focusable && focusable.value === true) {
- const zoomMargin = zone.properties?.find(
+ const zoomMargin = area.properties?.find(
(property) => property.name === GameMapProperties.ZOOM_MARGIN
);
this.cameraManager.enterFocusMode(
{
- x: zone.x + zone.width * 0.5,
- y: zone.y + zone.height * 0.5,
- width: zone.width,
- height: zone.height,
+ x: area.x + area.width * 0.5,
+ y: area.y + area.height * 0.5,
+ width: area.width,
+ height: area.height,
},
zoomMargin ? Math.max(0, Number(zoomMargin.value)) : undefined
);
break;
}
}
- zones.forEach((zone) => {
- iframeListener.sendEnterZoneEvent(zone.name);
+ areas.forEach((area) => {
+ iframeListener.sendEnterAreaEvent(area.name);
});
});
- this.gameMap.onLeaveZone((zones) => {
- for (const zone of zones) {
- const focusable = zone.properties?.find((property) => property.name === "focusable");
+ this.gameMap.onLeaveArea((areas) => {
+ for (const area of areas) {
+ const focusable = area.properties?.find((property) => property.name === "focusable");
if (focusable && focusable.value === true) {
this.cameraManager.leaveFocusMode(this.CurrentPlayer, 1000);
break;
}
}
- zones.forEach((zone) => {
- iframeListener.sendLeaveZoneEvent(zone.name);
+ areas.forEach((area) => {
+ iframeListener.sendLeaveAreaEvent(area.name);
});
});
diff --git a/maps/tests/tiled_objects.json b/maps/tests/tiled_objects.json
index f59380fd..d22a2efc 100644
--- a/maps/tests/tiled_objects.json
+++ b/maps/tests/tiled_objects.json
@@ -27,7 +27,7 @@
"y":0
},
{
- "data":[201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 223, 223, 223, 223, 223, 223, 201, 201, 201, 201, 201, 234, 234, 234, 234, 234, 234, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 223, 223, 223, 223, 223, 223, 201, 201, 201, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 223, 223, 223, 223, 223, 223, 201, 201, 201, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 223, 223, 223, 223, 223, 223, 201, 201, 201, 201, 201, 234, 234, 234, 234, 234, 234, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 234, 234, 234, 234, 234, 234, 234, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 234, 234, 234, 234, 234, 234, 234, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 234, 234, 234, 234, 234, 234, 234, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201],
+ "data":[201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 223, 223, 223, 223, 223, 223, 201, 201, 201, 201, 201, 234, 234, 234, 234, 234, 234, 201, 201, 201, 201, 201, 201, 201, 223, 223, 223, 201, 201, 201, 201, 223, 223, 223, 223, 223, 223, 201, 201, 201, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 201, 201, 201, 201, 201, 223, 223, 223, 201, 201, 201, 201, 223, 223, 223, 223, 223, 223, 201, 201, 201, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 223, 223, 223, 223, 223, 223, 201, 201, 201, 201, 201, 234, 234, 234, 234, 234, 234, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 234, 234, 234, 234, 234, 234, 234, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 234, 234, 234, 234, 234, 234, 234, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 234, 234, 234, 234, 234, 234, 234, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201],
"height":17,
"id":4,
"name":"floor",
@@ -72,7 +72,7 @@
"value":"onaction"
}],
"rotation":0,
- "type":"",
+ "type":"area",
"visible":true,
"width":320,
"x":317.331510594668,
@@ -89,7 +89,7 @@
"value":"MeetingRoom"
}],
"rotation":0,
- "type":"",
+ "type":"area",
"visible":true,
"width":192.568694463431,
"x":30.738664843928,
@@ -106,11 +106,28 @@
"value":true
}],
"rotation":0,
- "type":"",
+ "type":"area",
"visible":true,
"width":225.115516062885,
"x":735.919799498747,
"y":354.398724082935
+ },
+ {
+ "height":63.2854864433812,
+ "id":13,
+ "name":"",
+ "properties":[
+ {
+ "name":"openWebsite",
+ "type":"string",
+ "value":"https:\/\/youtu.be\/iF-ucIgP0OE?list=RDGMEMWO-g6DgCWEqKlDtKbJA1GwVMiF-ucIgP0OE"
+ }],
+ "rotation":0,
+ "type":"area",
+ "visible":true,
+ "width":96.736386420597,
+ "x":799.205285942128,
+ "y":96.736386420597
}],
"opacity":1,
"type":"objectgroup",
@@ -119,7 +136,7 @@
"y":0
}],
"nextlayerid":39,
- "nextobjectid":13,
+ "nextobjectid":15,
"orientation":"orthogonal",
"properties":[
{
From 1ca393f3dbc0893abd59edd11379464357198ff4 Mon Sep 17 00:00:00 2001
From: Piotr 'pwh' Hanusiak
Date: Tue, 12 Apr 2022 10:57:38 +0200
Subject: [PATCH 05/25] open website linked from Tiled Object
---
.../Phaser/Game/GameMapPropertiesListener.ts | 361 +++++++++---------
front/src/Phaser/Game/GameScene.ts | 5 +-
maps/tests/tiled_objects.json | 2 +-
3 files changed, 191 insertions(+), 177 deletions(-)
diff --git a/front/src/Phaser/Game/GameMapPropertiesListener.ts b/front/src/Phaser/Game/GameMapPropertiesListener.ts
index 103cc4bc..264af81a 100644
--- a/front/src/Phaser/Game/GameMapPropertiesListener.ts
+++ b/front/src/Phaser/Game/GameMapPropertiesListener.ts
@@ -6,7 +6,7 @@ import { layoutManagerActionStore } from "../../Stores/LayoutManagerStore";
import { localUserStore } from "../../Connexion/LocalUserStore";
import { get } from "svelte/store";
import { ON_ACTION_TRIGGER_BUTTON, ON_ICON_TRIGGER_BUTTON } from "../../WebRtc/LayoutManager";
-import type { ITiledMapLayer } from "../Map/ITiledMap";
+import type { ITiledMapLayer, ITiledMapProperty } from "../Map/ITiledMap";
import { GameMapProperties } from "./GameMapProperties";
import type { CoWebsite } from "../../WebRtc/CoWebsite/CoWesbite";
import { SimpleCoWebsite } from "../../WebRtc/CoWebsite/SimpleCoWebsite";
@@ -23,9 +23,17 @@ interface OpenCoWebsite {
coWebsite?: CoWebsite;
}
+/**
+ * Either Layer or Object within Objects Layer in Tiled
+ */
+export interface ITiledPlace {
+ name: string;
+ properties?: ITiledMapProperty[];
+}
+
export class GameMapPropertiesListener {
- private coWebsitesOpenByLayer = new Map();
- private coWebsitesActionTriggerByLayer = new Map();
+ private coWebsitesOpenByPlace = new Map();
+ private coWebsitesActionTriggerByPlace = new Map();
constructor(private scene: GameScene, private gameMap: GameMap) {}
@@ -179,193 +187,196 @@ export class GameMapPropertiesListener {
}
});
- // Open a new co-website by the property.
this.gameMap.onEnterLayer((newLayers) => {
- const handler = () => {
- newLayers.forEach((layer) => {
- if (!layer.properties) {
- return;
- }
-
- let openWebsiteProperty: string | undefined;
- let allowApiProperty: boolean | undefined;
- let websitePolicyProperty: string | undefined;
- let websiteWidthProperty: number | undefined;
- let websitePositionProperty: number | undefined;
- let websiteTriggerProperty: string | undefined;
- let websiteTriggerMessageProperty: string | undefined;
-
- layer.properties.forEach((property) => {
- switch (property.name) {
- case GameMapProperties.OPEN_WEBSITE:
- openWebsiteProperty = property.value as string | undefined;
- break;
- case GameMapProperties.OPEN_WEBSITE_ALLOW_API:
- allowApiProperty = property.value as boolean | undefined;
- break;
- case GameMapProperties.OPEN_WEBSITE_POLICY:
- websitePolicyProperty = property.value as string | undefined;
- break;
- case GameMapProperties.OPEN_WEBSITE_WIDTH:
- websiteWidthProperty = property.value as number | undefined;
- break;
- case GameMapProperties.OPEN_WEBSITE_POSITION:
- websitePositionProperty = property.value as number | undefined;
- break;
- case GameMapProperties.OPEN_WEBSITE_TRIGGER:
- websiteTriggerProperty = property.value as string | undefined;
- break;
- case GameMapProperties.OPEN_WEBSITE_TRIGGER_MESSAGE:
- websiteTriggerMessageProperty = property.value as string | undefined;
- break;
- }
- });
-
- if (!openWebsiteProperty) {
- return;
- }
-
- const actionId = "openWebsite-" + (Math.random() + 1).toString(36).substring(7);
-
- if (this.coWebsitesOpenByLayer.has(layer)) {
- return;
- }
-
- const coWebsiteOpen: OpenCoWebsite = {
- actionId: actionId,
- };
-
- this.coWebsitesOpenByLayer.set(layer, coWebsiteOpen);
-
- const loadCoWebsiteFunction = (coWebsite: CoWebsite) => {
- coWebsiteManager.loadCoWebsite(coWebsite).catch(() => {
- console.error("Error during loading a co-website: " + coWebsite.getUrl());
- });
-
- layoutManagerActionStore.removeAction(actionId);
- };
-
- const openCoWebsiteFunction = () => {
- const coWebsite = new SimpleCoWebsite(
- new URL(openWebsiteProperty ?? "", this.scene.MapUrlFile),
- allowApiProperty,
- websitePolicyProperty,
- websiteWidthProperty,
- false
- );
-
- coWebsiteOpen.coWebsite = coWebsite;
-
- coWebsiteManager.addCoWebsiteToStore(coWebsite, websitePositionProperty);
-
- loadCoWebsiteFunction(coWebsite);
- };
-
- if (
- localUserStore.getForceCowebsiteTrigger() ||
- websiteTriggerProperty === ON_ACTION_TRIGGER_BUTTON
- ) {
- if (!websiteTriggerMessageProperty) {
- websiteTriggerMessageProperty = get(LL).trigger.cowebsite();
- }
-
- this.coWebsitesActionTriggerByLayer.set(layer, actionId);
-
- layoutManagerActionStore.addAction({
- uuid: actionId,
- type: "message",
- message: websiteTriggerMessageProperty,
- callback: () => openCoWebsiteFunction(),
- userInputManager: this.scene.userInputManager,
- });
- } else if (websiteTriggerProperty === ON_ICON_TRIGGER_BUTTON) {
- const coWebsite = new SimpleCoWebsite(
- new URL(openWebsiteProperty ?? "", this.scene.MapUrlFile),
- allowApiProperty,
- websitePolicyProperty,
- websiteWidthProperty,
- false
- );
-
- coWebsiteOpen.coWebsite = coWebsite;
-
- coWebsiteManager.addCoWebsiteToStore(coWebsite, websitePositionProperty);
- }
-
- if (!websiteTriggerProperty) {
- openCoWebsiteFunction();
- }
- });
- };
-
- handler();
+ this.onEnterPlaceHandler(newLayers);
});
- // Close opened co-websites on leave the layer who contain the property.
this.gameMap.onLeaveLayer((oldLayers) => {
- const handler = () => {
- oldLayers.forEach((layer) => {
- if (!layer.properties) {
- return;
- }
+ this.onLeavePlaceHandler(oldLayers);
+ });
- let openWebsiteProperty: string | undefined;
- let websiteTriggerProperty: string | undefined;
+ this.gameMap.onEnterArea((newAreas) => {
+ this.onEnterPlaceHandler(newAreas);
+ });
- layer.properties.forEach((property) => {
- switch (property.name) {
- case GameMapProperties.OPEN_WEBSITE:
- openWebsiteProperty = property.value as string | undefined;
- break;
- case GameMapProperties.OPEN_WEBSITE_TRIGGER:
- websiteTriggerProperty = property.value as string | undefined;
- break;
- }
- });
+ this.gameMap.onLeaveArea((oldAreas) => {
+ this.onLeavePlaceHandler(oldAreas);
+ });
+ }
- if (!openWebsiteProperty) {
- return;
- }
+ private onEnterPlaceHandler(places: ITiledPlace[]): void {
+ places.forEach((place) => {
+ if (!place.properties) {
+ return;
+ }
- const coWebsiteOpen = this.coWebsitesOpenByLayer.get(layer);
+ let openWebsiteProperty: string | undefined;
+ let allowApiProperty: boolean | undefined;
+ let websitePolicyProperty: string | undefined;
+ let websiteWidthProperty: number | undefined;
+ let websitePositionProperty: number | undefined;
+ let websiteTriggerProperty: string | undefined;
+ let websiteTriggerMessageProperty: string | undefined;
- if (!coWebsiteOpen) {
- return;
- }
+ place.properties.forEach((property) => {
+ switch (property.name) {
+ case GameMapProperties.OPEN_WEBSITE:
+ openWebsiteProperty = property.value as string | undefined;
+ break;
+ case GameMapProperties.OPEN_WEBSITE_ALLOW_API:
+ allowApiProperty = property.value as boolean | undefined;
+ break;
+ case GameMapProperties.OPEN_WEBSITE_POLICY:
+ websitePolicyProperty = property.value as string | undefined;
+ break;
+ case GameMapProperties.OPEN_WEBSITE_WIDTH:
+ websiteWidthProperty = property.value as number | undefined;
+ break;
+ case GameMapProperties.OPEN_WEBSITE_POSITION:
+ websitePositionProperty = property.value as number | undefined;
+ break;
+ case GameMapProperties.OPEN_WEBSITE_TRIGGER:
+ websiteTriggerProperty = property.value as string | undefined;
+ break;
+ case GameMapProperties.OPEN_WEBSITE_TRIGGER_MESSAGE:
+ websiteTriggerMessageProperty = property.value as string | undefined;
+ break;
+ }
+ });
- const coWebsite = coWebsiteOpen.coWebsite;
+ if (!openWebsiteProperty) {
+ return;
+ }
- if (coWebsite) {
- coWebsiteManager.closeCoWebsite(coWebsite);
- }
+ const actionId = "openWebsite-" + (Math.random() + 1).toString(36).substring(7);
- this.coWebsitesOpenByLayer.delete(layer);
+ if (this.coWebsitesOpenByPlace.has(place)) {
+ return;
+ }
- if (!websiteTriggerProperty) {
- return;
- }
-
- const actionStore = get(layoutManagerActionStore);
- const actionTriggerUuid = this.coWebsitesActionTriggerByLayer.get(layer);
-
- if (!actionTriggerUuid) {
- return;
- }
-
- const action =
- actionStore && actionStore.length > 0
- ? actionStore.find((action) => action.uuid === actionTriggerUuid)
- : undefined;
-
- if (action) {
- layoutManagerActionStore.removeAction(actionTriggerUuid);
- }
-
- this.coWebsitesActionTriggerByLayer.delete(layer);
- });
+ const coWebsiteOpen: OpenCoWebsite = {
+ actionId: actionId,
};
- handler();
+ this.coWebsitesOpenByPlace.set(place, coWebsiteOpen);
+
+ const loadCoWebsiteFunction = (coWebsite: CoWebsite) => {
+ coWebsiteManager.loadCoWebsite(coWebsite).catch(() => {
+ console.error("Error during loading a co-website: " + coWebsite.getUrl());
+ });
+
+ layoutManagerActionStore.removeAction(actionId);
+ };
+
+ const openCoWebsiteFunction = () => {
+ const coWebsite = new SimpleCoWebsite(
+ new URL(openWebsiteProperty ?? "", this.scene.MapUrlFile),
+ allowApiProperty,
+ websitePolicyProperty,
+ websiteWidthProperty,
+ false
+ );
+
+ coWebsiteOpen.coWebsite = coWebsite;
+
+ coWebsiteManager.addCoWebsiteToStore(coWebsite, websitePositionProperty);
+
+ loadCoWebsiteFunction(coWebsite);
+ };
+
+ if (localUserStore.getForceCowebsiteTrigger() || websiteTriggerProperty === ON_ACTION_TRIGGER_BUTTON) {
+ if (!websiteTriggerMessageProperty) {
+ websiteTriggerMessageProperty = get(LL).trigger.cowebsite();
+ }
+
+ this.coWebsitesActionTriggerByPlace.set(place, actionId);
+
+ layoutManagerActionStore.addAction({
+ uuid: actionId,
+ type: "message",
+ message: websiteTriggerMessageProperty,
+ callback: () => openCoWebsiteFunction(),
+ userInputManager: this.scene.userInputManager,
+ });
+ } else if (websiteTriggerProperty === ON_ICON_TRIGGER_BUTTON) {
+ const coWebsite = new SimpleCoWebsite(
+ new URL(openWebsiteProperty ?? "", this.scene.MapUrlFile),
+ allowApiProperty,
+ websitePolicyProperty,
+ websiteWidthProperty,
+ false
+ );
+
+ coWebsiteOpen.coWebsite = coWebsite;
+
+ coWebsiteManager.addCoWebsiteToStore(coWebsite, websitePositionProperty);
+ }
+
+ if (!websiteTriggerProperty) {
+ openCoWebsiteFunction();
+ }
+ });
+ }
+
+ private onLeavePlaceHandler(places: ITiledPlace[]): void {
+ places.forEach((place) => {
+ if (!place.properties) {
+ return;
+ }
+
+ let openWebsiteProperty: string | undefined;
+ let websiteTriggerProperty: string | undefined;
+
+ place.properties.forEach((property) => {
+ switch (property.name) {
+ case GameMapProperties.OPEN_WEBSITE:
+ openWebsiteProperty = property.value as string | undefined;
+ break;
+ case GameMapProperties.OPEN_WEBSITE_TRIGGER:
+ websiteTriggerProperty = property.value as string | undefined;
+ break;
+ }
+ });
+
+ if (!openWebsiteProperty) {
+ return;
+ }
+
+ const coWebsiteOpen = this.coWebsitesOpenByPlace.get(place);
+
+ if (!coWebsiteOpen) {
+ return;
+ }
+
+ const coWebsite = coWebsiteOpen.coWebsite;
+
+ if (coWebsite) {
+ coWebsiteManager.closeCoWebsite(coWebsite);
+ }
+
+ this.coWebsitesOpenByPlace.delete(place);
+
+ if (!websiteTriggerProperty) {
+ return;
+ }
+
+ const actionStore = get(layoutManagerActionStore);
+ const actionTriggerUuid = this.coWebsitesActionTriggerByPlace.get(place);
+
+ if (!actionTriggerUuid) {
+ return;
+ }
+
+ const action =
+ actionStore && actionStore.length > 0
+ ? actionStore.find((action) => action.uuid === actionTriggerUuid)
+ : undefined;
+
+ if (action) {
+ layoutManagerActionStore.removeAction(actionTriggerUuid);
+ }
+
+ this.coWebsitesActionTriggerByPlace.delete(place);
});
}
}
diff --git a/front/src/Phaser/Game/GameScene.ts b/front/src/Phaser/Game/GameScene.ts
index 7478540d..a17159b2 100644
--- a/front/src/Phaser/Game/GameScene.ts
+++ b/front/src/Phaser/Game/GameScene.ts
@@ -892,6 +892,7 @@ export class GameScene extends DirtyScene {
});
});
+ // TODO: Move to GameMapPropertiesListener?
this.gameMap.onEnterArea((areas) => {
for (const area of areas) {
const focusable = area.properties?.find(
@@ -920,7 +921,9 @@ export class GameScene extends DirtyScene {
this.gameMap.onLeaveArea((areas) => {
for (const area of areas) {
- const focusable = area.properties?.find((property) => property.name === "focusable");
+ const focusable = area.properties?.find(
+ (property) => property.name === GameMapProperties.FOCUSABLE
+ );
if (focusable && focusable.value === true) {
this.cameraManager.leaveFocusMode(this.CurrentPlayer, 1000);
break;
diff --git a/maps/tests/tiled_objects.json b/maps/tests/tiled_objects.json
index d22a2efc..d939a961 100644
--- a/maps/tests/tiled_objects.json
+++ b/maps/tests/tiled_objects.json
@@ -120,7 +120,7 @@
{
"name":"openWebsite",
"type":"string",
- "value":"https:\/\/youtu.be\/iF-ucIgP0OE?list=RDGMEMWO-g6DgCWEqKlDtKbJA1GwVMiF-ucIgP0OE"
+ "value":"https:\/\/www.youtube.com\/embed\/CvXUGIm_hkA?list=RDCvXUGIm_hkA"
}],
"rotation":0,
"type":"area",
From 54b6c3800e8f3d2de9a23cab898528a813c456b7 Mon Sep 17 00:00:00 2001
From: Piotr 'pwh' Hanusiak
Date: Tue, 12 Apr 2022 11:43:52 +0200
Subject: [PATCH 06/25] remove unused import
---
front/src/Phaser/Game/GameMapPropertiesListener.ts | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/front/src/Phaser/Game/GameMapPropertiesListener.ts b/front/src/Phaser/Game/GameMapPropertiesListener.ts
index 264af81a..950172d2 100644
--- a/front/src/Phaser/Game/GameMapPropertiesListener.ts
+++ b/front/src/Phaser/Game/GameMapPropertiesListener.ts
@@ -6,7 +6,7 @@ import { layoutManagerActionStore } from "../../Stores/LayoutManagerStore";
import { localUserStore } from "../../Connexion/LocalUserStore";
import { get } from "svelte/store";
import { ON_ACTION_TRIGGER_BUTTON, ON_ICON_TRIGGER_BUTTON } from "../../WebRtc/LayoutManager";
-import type { ITiledMapLayer, ITiledMapProperty } from "../Map/ITiledMap";
+import type { ITiledMapProperty } from "../Map/ITiledMap";
import { GameMapProperties } from "./GameMapProperties";
import type { CoWebsite } from "../../WebRtc/CoWebsite/CoWesbite";
import { SimpleCoWebsite } from "../../WebRtc/CoWebsite/SimpleCoWebsite";
@@ -29,6 +29,8 @@ interface OpenCoWebsite {
export interface ITiledPlace {
name: string;
properties?: ITiledMapProperty[];
+ width?: number;
+ height?: number;
}
export class GameMapPropertiesListener {
From d4f5dc6d3529efff37f2395e32d6db7195a88699 Mon Sep 17 00:00:00 2001
From: Piotr 'pwh' Hanusiak
Date: Tue, 12 Apr 2022 12:47:45 +0200
Subject: [PATCH 07/25] moved focusable property handling away from gamescene
---
.../Phaser/Game/GameMapPropertiesListener.ts | 371 ++++++++++--------
front/src/Phaser/Game/GameScene.ts | 30 --
maps/tests/tiled_objects.json | 148 ++++++-
3 files changed, 354 insertions(+), 195 deletions(-)
diff --git a/front/src/Phaser/Game/GameMapPropertiesListener.ts b/front/src/Phaser/Game/GameMapPropertiesListener.ts
index 950172d2..37fad9ab 100644
--- a/front/src/Phaser/Game/GameMapPropertiesListener.ts
+++ b/front/src/Phaser/Game/GameMapPropertiesListener.ts
@@ -29,6 +29,8 @@ interface OpenCoWebsite {
export interface ITiledPlace {
name: string;
properties?: ITiledMapProperty[];
+ x?: number;
+ y?: number;
width?: number;
height?: number;
}
@@ -208,115 +210,8 @@ export class GameMapPropertiesListener {
private onEnterPlaceHandler(places: ITiledPlace[]): void {
places.forEach((place) => {
- if (!place.properties) {
- return;
- }
-
- let openWebsiteProperty: string | undefined;
- let allowApiProperty: boolean | undefined;
- let websitePolicyProperty: string | undefined;
- let websiteWidthProperty: number | undefined;
- let websitePositionProperty: number | undefined;
- let websiteTriggerProperty: string | undefined;
- let websiteTriggerMessageProperty: string | undefined;
-
- place.properties.forEach((property) => {
- switch (property.name) {
- case GameMapProperties.OPEN_WEBSITE:
- openWebsiteProperty = property.value as string | undefined;
- break;
- case GameMapProperties.OPEN_WEBSITE_ALLOW_API:
- allowApiProperty = property.value as boolean | undefined;
- break;
- case GameMapProperties.OPEN_WEBSITE_POLICY:
- websitePolicyProperty = property.value as string | undefined;
- break;
- case GameMapProperties.OPEN_WEBSITE_WIDTH:
- websiteWidthProperty = property.value as number | undefined;
- break;
- case GameMapProperties.OPEN_WEBSITE_POSITION:
- websitePositionProperty = property.value as number | undefined;
- break;
- case GameMapProperties.OPEN_WEBSITE_TRIGGER:
- websiteTriggerProperty = property.value as string | undefined;
- break;
- case GameMapProperties.OPEN_WEBSITE_TRIGGER_MESSAGE:
- websiteTriggerMessageProperty = property.value as string | undefined;
- break;
- }
- });
-
- if (!openWebsiteProperty) {
- return;
- }
-
- const actionId = "openWebsite-" + (Math.random() + 1).toString(36).substring(7);
-
- if (this.coWebsitesOpenByPlace.has(place)) {
- return;
- }
-
- const coWebsiteOpen: OpenCoWebsite = {
- actionId: actionId,
- };
-
- this.coWebsitesOpenByPlace.set(place, coWebsiteOpen);
-
- const loadCoWebsiteFunction = (coWebsite: CoWebsite) => {
- coWebsiteManager.loadCoWebsite(coWebsite).catch(() => {
- console.error("Error during loading a co-website: " + coWebsite.getUrl());
- });
-
- layoutManagerActionStore.removeAction(actionId);
- };
-
- const openCoWebsiteFunction = () => {
- const coWebsite = new SimpleCoWebsite(
- new URL(openWebsiteProperty ?? "", this.scene.MapUrlFile),
- allowApiProperty,
- websitePolicyProperty,
- websiteWidthProperty,
- false
- );
-
- coWebsiteOpen.coWebsite = coWebsite;
-
- coWebsiteManager.addCoWebsiteToStore(coWebsite, websitePositionProperty);
-
- loadCoWebsiteFunction(coWebsite);
- };
-
- if (localUserStore.getForceCowebsiteTrigger() || websiteTriggerProperty === ON_ACTION_TRIGGER_BUTTON) {
- if (!websiteTriggerMessageProperty) {
- websiteTriggerMessageProperty = get(LL).trigger.cowebsite();
- }
-
- this.coWebsitesActionTriggerByPlace.set(place, actionId);
-
- layoutManagerActionStore.addAction({
- uuid: actionId,
- type: "message",
- message: websiteTriggerMessageProperty,
- callback: () => openCoWebsiteFunction(),
- userInputManager: this.scene.userInputManager,
- });
- } else if (websiteTriggerProperty === ON_ICON_TRIGGER_BUTTON) {
- const coWebsite = new SimpleCoWebsite(
- new URL(openWebsiteProperty ?? "", this.scene.MapUrlFile),
- allowApiProperty,
- websitePolicyProperty,
- websiteWidthProperty,
- false
- );
-
- coWebsiteOpen.coWebsite = coWebsite;
-
- coWebsiteManager.addCoWebsiteToStore(coWebsite, websitePositionProperty);
- }
-
- if (!websiteTriggerProperty) {
- openCoWebsiteFunction();
- }
+ this.handleOpenWebsitePropertiesOnEnter(place);
+ this.handleFocusablePropertiesOnEnter(place);
});
}
@@ -326,59 +221,211 @@ export class GameMapPropertiesListener {
return;
}
- let openWebsiteProperty: string | undefined;
- let websiteTriggerProperty: string | undefined;
-
- place.properties.forEach((property) => {
- switch (property.name) {
- case GameMapProperties.OPEN_WEBSITE:
- openWebsiteProperty = property.value as string | undefined;
- break;
- case GameMapProperties.OPEN_WEBSITE_TRIGGER:
- websiteTriggerProperty = property.value as string | undefined;
- break;
- }
- });
-
- if (!openWebsiteProperty) {
- return;
- }
-
- const coWebsiteOpen = this.coWebsitesOpenByPlace.get(place);
-
- if (!coWebsiteOpen) {
- return;
- }
-
- const coWebsite = coWebsiteOpen.coWebsite;
-
- if (coWebsite) {
- coWebsiteManager.closeCoWebsite(coWebsite);
- }
-
- this.coWebsitesOpenByPlace.delete(place);
-
- if (!websiteTriggerProperty) {
- return;
- }
-
- const actionStore = get(layoutManagerActionStore);
- const actionTriggerUuid = this.coWebsitesActionTriggerByPlace.get(place);
-
- if (!actionTriggerUuid) {
- return;
- }
-
- const action =
- actionStore && actionStore.length > 0
- ? actionStore.find((action) => action.uuid === actionTriggerUuid)
- : undefined;
-
- if (action) {
- layoutManagerActionStore.removeAction(actionTriggerUuid);
- }
-
- this.coWebsitesActionTriggerByPlace.delete(place);
+ this.handleOpenWebsitePropertiesOnLeave(place);
+ this.handleFocusablePropertiesOnLeave(place);
});
}
+
+ private handleOpenWebsitePropertiesOnEnter(place: ITiledPlace): void {
+ if (!place.properties) {
+ return;
+ }
+ let openWebsiteProperty: string | undefined;
+ let allowApiProperty: boolean | undefined;
+ let websitePolicyProperty: string | undefined;
+ let websiteWidthProperty: number | undefined;
+ let websitePositionProperty: number | undefined;
+ let websiteTriggerProperty: string | undefined;
+ let websiteTriggerMessageProperty: string | undefined;
+
+ place.properties.forEach((property) => {
+ switch (property.name) {
+ case GameMapProperties.OPEN_WEBSITE:
+ openWebsiteProperty = property.value as string | undefined;
+ break;
+ case GameMapProperties.OPEN_WEBSITE_ALLOW_API:
+ allowApiProperty = property.value as boolean | undefined;
+ break;
+ case GameMapProperties.OPEN_WEBSITE_POLICY:
+ websitePolicyProperty = property.value as string | undefined;
+ break;
+ case GameMapProperties.OPEN_WEBSITE_WIDTH:
+ websiteWidthProperty = property.value as number | undefined;
+ break;
+ case GameMapProperties.OPEN_WEBSITE_POSITION:
+ websitePositionProperty = property.value as number | undefined;
+ break;
+ case GameMapProperties.OPEN_WEBSITE_TRIGGER:
+ websiteTriggerProperty = property.value as string | undefined;
+ break;
+ case GameMapProperties.OPEN_WEBSITE_TRIGGER_MESSAGE:
+ websiteTriggerMessageProperty = property.value as string | undefined;
+ break;
+ }
+ });
+
+ if (!openWebsiteProperty) {
+ return;
+ }
+
+ const actionId = "openWebsite-" + (Math.random() + 1).toString(36).substring(7);
+
+ if (this.coWebsitesOpenByPlace.has(place)) {
+ return;
+ }
+
+ const coWebsiteOpen: OpenCoWebsite = {
+ actionId: actionId,
+ };
+
+ this.coWebsitesOpenByPlace.set(place, coWebsiteOpen);
+
+ const loadCoWebsiteFunction = (coWebsite: CoWebsite) => {
+ coWebsiteManager.loadCoWebsite(coWebsite).catch(() => {
+ console.error("Error during loading a co-website: " + coWebsite.getUrl());
+ });
+
+ layoutManagerActionStore.removeAction(actionId);
+ };
+
+ const openCoWebsiteFunction = () => {
+ const coWebsite = new SimpleCoWebsite(
+ new URL(openWebsiteProperty ?? "", this.scene.MapUrlFile),
+ allowApiProperty,
+ websitePolicyProperty,
+ websiteWidthProperty,
+ false
+ );
+
+ coWebsiteOpen.coWebsite = coWebsite;
+
+ coWebsiteManager.addCoWebsiteToStore(coWebsite, websitePositionProperty);
+
+ loadCoWebsiteFunction(coWebsite);
+ };
+
+ if (localUserStore.getForceCowebsiteTrigger() || websiteTriggerProperty === ON_ACTION_TRIGGER_BUTTON) {
+ if (!websiteTriggerMessageProperty) {
+ websiteTriggerMessageProperty = get(LL).trigger.cowebsite();
+ }
+
+ this.coWebsitesActionTriggerByPlace.set(place, actionId);
+
+ layoutManagerActionStore.addAction({
+ uuid: actionId,
+ type: "message",
+ message: websiteTriggerMessageProperty,
+ callback: () => openCoWebsiteFunction(),
+ userInputManager: this.scene.userInputManager,
+ });
+ } else if (websiteTriggerProperty === ON_ICON_TRIGGER_BUTTON) {
+ const coWebsite = new SimpleCoWebsite(
+ new URL(openWebsiteProperty ?? "", this.scene.MapUrlFile),
+ allowApiProperty,
+ websitePolicyProperty,
+ websiteWidthProperty,
+ false
+ );
+
+ coWebsiteOpen.coWebsite = coWebsite;
+
+ coWebsiteManager.addCoWebsiteToStore(coWebsite, websitePositionProperty);
+ }
+
+ if (!websiteTriggerProperty) {
+ openCoWebsiteFunction();
+ }
+ }
+
+ private handleFocusablePropertiesOnEnter(place: ITiledPlace): void {
+ if (!place.properties) {
+ return;
+ }
+ if (place.x === undefined || place.y === undefined || !place.height || !place.width) {
+ return;
+ }
+ const focusable = place.properties.find((property) => property.name === GameMapProperties.FOCUSABLE);
+ if (focusable && focusable.value === true) {
+ const zoomMargin = place.properties.find((property) => property.name === GameMapProperties.ZOOM_MARGIN);
+ this.scene.getCameraManager().enterFocusMode(
+ {
+ x: place.x + place.width * 0.5,
+ y: place.y + place.height * 0.5,
+ width: place.width,
+ height: place.height,
+ },
+ zoomMargin ? Math.max(0, Number(zoomMargin.value)) : undefined
+ );
+ }
+ }
+
+ private handleOpenWebsitePropertiesOnLeave(place: ITiledPlace): void {
+ if (!place.properties) {
+ return;
+ }
+
+ let openWebsiteProperty: string | undefined;
+ let websiteTriggerProperty: string | undefined;
+
+ place.properties.forEach((property) => {
+ switch (property.name) {
+ case GameMapProperties.OPEN_WEBSITE:
+ openWebsiteProperty = property.value as string | undefined;
+ break;
+ case GameMapProperties.OPEN_WEBSITE_TRIGGER:
+ websiteTriggerProperty = property.value as string | undefined;
+ break;
+ }
+ });
+
+ if (!openWebsiteProperty) {
+ return;
+ }
+
+ const coWebsiteOpen = this.coWebsitesOpenByPlace.get(place);
+
+ if (!coWebsiteOpen) {
+ return;
+ }
+
+ const coWebsite = coWebsiteOpen.coWebsite;
+
+ if (coWebsite) {
+ coWebsiteManager.closeCoWebsite(coWebsite);
+ }
+
+ this.coWebsitesOpenByPlace.delete(place);
+
+ if (!websiteTriggerProperty) {
+ return;
+ }
+
+ const actionStore = get(layoutManagerActionStore);
+ const actionTriggerUuid = this.coWebsitesActionTriggerByPlace.get(place);
+
+ if (!actionTriggerUuid) {
+ return;
+ }
+
+ const action =
+ actionStore && actionStore.length > 0
+ ? actionStore.find((action) => action.uuid === actionTriggerUuid)
+ : undefined;
+
+ if (action) {
+ layoutManagerActionStore.removeAction(actionTriggerUuid);
+ }
+
+ this.coWebsitesActionTriggerByPlace.delete(place);
+ }
+
+ private handleFocusablePropertiesOnLeave(place: ITiledPlace): void {
+ if (!place.properties) {
+ return;
+ }
+ const focusable = place.properties.find((property) => property.name === GameMapProperties.FOCUSABLE);
+ if (focusable && focusable.value === true) {
+ this.scene.getCameraManager().leaveFocusMode(this.scene.CurrentPlayer, 1000);
+ }
+ }
}
diff --git a/front/src/Phaser/Game/GameScene.ts b/front/src/Phaser/Game/GameScene.ts
index a17159b2..87a9bee2 100644
--- a/front/src/Phaser/Game/GameScene.ts
+++ b/front/src/Phaser/Game/GameScene.ts
@@ -892,43 +892,13 @@ export class GameScene extends DirtyScene {
});
});
- // TODO: Move to GameMapPropertiesListener?
this.gameMap.onEnterArea((areas) => {
- for (const area of areas) {
- const focusable = area.properties?.find(
- (property) => property.name === GameMapProperties.FOCUSABLE
- );
- if (focusable && focusable.value === true) {
- const zoomMargin = area.properties?.find(
- (property) => property.name === GameMapProperties.ZOOM_MARGIN
- );
- this.cameraManager.enterFocusMode(
- {
- x: area.x + area.width * 0.5,
- y: area.y + area.height * 0.5,
- width: area.width,
- height: area.height,
- },
- zoomMargin ? Math.max(0, Number(zoomMargin.value)) : undefined
- );
- break;
- }
- }
areas.forEach((area) => {
iframeListener.sendEnterAreaEvent(area.name);
});
});
this.gameMap.onLeaveArea((areas) => {
- for (const area of areas) {
- const focusable = area.properties?.find(
- (property) => property.name === GameMapProperties.FOCUSABLE
- );
- if (focusable && focusable.value === true) {
- this.cameraManager.leaveFocusMode(this.CurrentPlayer, 1000);
- break;
- }
- }
areas.forEach((area) => {
iframeListener.sendLeaveAreaEvent(area.name);
});
diff --git a/maps/tests/tiled_objects.json b/maps/tests/tiled_objects.json
index d939a961..3f029b41 100644
--- a/maps/tests/tiled_objects.json
+++ b/maps/tests/tiled_objects.json
@@ -27,7 +27,7 @@
"y":0
},
{
- "data":[201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 223, 223, 223, 223, 223, 223, 201, 201, 201, 201, 201, 234, 234, 234, 234, 234, 234, 201, 201, 201, 201, 201, 201, 201, 223, 223, 223, 201, 201, 201, 201, 223, 223, 223, 223, 223, 223, 201, 201, 201, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 201, 201, 201, 201, 201, 223, 223, 223, 201, 201, 201, 201, 223, 223, 223, 223, 223, 223, 201, 201, 201, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 223, 223, 223, 223, 223, 223, 201, 201, 201, 201, 201, 234, 234, 234, 234, 234, 234, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 234, 234, 234, 234, 234, 234, 234, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 234, 234, 234, 234, 234, 234, 234, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 234, 234, 234, 234, 234, 234, 234, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201],
+ "data":[201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 223, 223, 223, 223, 223, 223, 201, 201, 201, 201, 201, 234, 234, 234, 234, 234, 234, 201, 201, 201, 201, 201, 201, 201, 223, 223, 223, 201, 201, 201, 201, 223, 223, 223, 223, 223, 223, 201, 201, 201, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 201, 201, 201, 201, 201, 223, 223, 223, 201, 201, 201, 201, 223, 223, 223, 223, 223, 223, 201, 201, 201, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 223, 223, 223, 223, 223, 223, 201, 201, 201, 201, 201, 234, 234, 234, 234, 234, 234, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 223, 223, 223, 223, 223, 223, 223, 223, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 223, 223, 223, 223, 223, 223, 223, 223, 201, 234, 234, 234, 234, 234, 234, 234, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 223, 223, 223, 223, 223, 223, 223, 223, 201, 234, 234, 234, 234, 234, 234, 234, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 223, 223, 223, 223, 223, 223, 223, 223, 201, 234, 234, 234, 234, 234, 234, 234, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201],
"height":17,
"id":4,
"name":"floor",
@@ -39,7 +39,7 @@
"y":0
},
{
- "data":[49, 58, 58, 58, 58, 58, 58, 42, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 42, 57, 57, 57, 57, 57, 57, 57, 50, 45, 63, 63, 63, 63, 63, 63, 45, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 45, 63, 63, 63, 63, 63, 63, 63, 45, 45, 73, 73, 73, 73, 73, 73, 45, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 45, 73, 73, 73, 73, 73, 73, 73, 45, 45, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 45, 59, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 32, 58, 58, 58, 58, 58, 58, 58, 60, 83, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 84, 93, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 94],
+ "data":[49, 58, 58, 58, 58, 58, 58, 42, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 42, 57, 57, 57, 57, 57, 57, 57, 50, 45, 63, 63, 63, 63, 63, 63, 45, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 45, 63, 63, 63, 63, 63, 63, 63, 45, 45, 73, 73, 73, 73, 73, 73, 45, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 45, 73, 73, 73, 73, 73, 73, 73, 45, 45, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 45, 45, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 45, 45, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 45, 59, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 32, 58, 58, 58, 58, 58, 58, 58, 60, 83, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 84, 93, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 94],
"height":17,
"id":9,
"name":"walls",
@@ -117,6 +117,11 @@
"id":13,
"name":"",
"properties":[
+ {
+ "name":"focusable",
+ "type":"bool",
+ "value":true
+ },
{
"name":"openWebsite",
"type":"string",
@@ -128,6 +133,143 @@
"width":96.736386420597,
"x":799.205285942128,
"y":96.736386420597
+ },
+ {
+ "height":124.762816131237,
+ "id":15,
+ "name":"",
+ "properties":[
+ {
+ "name":"focusable",
+ "type":"bool",
+ "value":true
+ },
+ {
+ "name":"zoom_margin",
+ "type":"float",
+ "value":0.5
+ }],
+ "rotation":0,
+ "type":"area",
+ "visible":true,
+ "width":254.95010252905,
+ "x":448.422875370244,
+ "y":320.947824105719
+ },
+ {
+ "height":19,
+ "id":17,
+ "name":"",
+ "rotation":0,
+ "text":
+ {
+ "text":"FOCUSABLE ",
+ "wrap":true
+ },
+ "type":"",
+ "visible":true,
+ "width":93.848940533151,
+ "x":529.877534745956,
+ "y":358.459899749373
+ },
+ {
+ "height":19,
+ "id":18,
+ "name":"",
+ "rotation":0,
+ "text":
+ {
+ "text":"JITSI ON TRIGGER",
+ "wrap":true
+ },
+ "type":"",
+ "visible":true,
+ "width":164.367053998633,
+ "x":408.731032125769,
+ "y":150.521872863978
+ },
+ {
+ "height":19,
+ "id":19,
+ "name":"",
+ "rotation":0,
+ "text":
+ {
+ "text":"JITSI",
+ "wrap":true
+ },
+ "type":"",
+ "visible":true,
+ "width":43.2205513784461,
+ "x":100.440305308726,
+ "y":147.80963773069
+ },
+ {
+ "height":102.175210754158,
+ "id":20,
+ "name":"",
+ "rotation":0,
+ "text":
+ {
+ "halign":"center",
+ "text":"OPEN WEBSITE AND FOCUSABLE",
+ "wrap":true
+ },
+ "type":"",
+ "visible":true,
+ "width":99.2734107997265,
+ "x":796.580656185919,
+ "y":102.605718842561
+ },
+ {
+ "height":19,
+ "id":21,
+ "name":"",
+ "rotation":0,
+ "text":
+ {
+ "text":"SILENT ZONE",
+ "wrap":true
+ },
+ "type":"",
+ "visible":true,
+ "width":112.834586466165,
+ "x":799.292891319207,
+ "y":391.910799726589
+ },
+ {
+ "height":95.892082727209,
+ "id":22,
+ "name":"",
+ "properties":[
+ {
+ "name":"focusable",
+ "type":"bool",
+ "value":true
+ }],
+ "rotation":359.800363945476,
+ "type":"",
+ "visible":true,
+ "width":318.187448731897,
+ "x":32.4024392837801,
+ "y":352.890077348834
+ },
+ {
+ "height":43.4101161995899,
+ "id":23,
+ "name":"",
+ "rotation":0,
+ "text":
+ {
+ "halign":"center",
+ "text":"THIS SHOULD NOT TRIGGER ANYTHING (TYPE IS NOT 'AREA')",
+ "wrap":true
+ },
+ "type":"",
+ "visible":true,
+ "width":288.225791752108,
+ "x":41.6752107541581,
+ "y":381.965937571201
}],
"opacity":1,
"type":"objectgroup",
@@ -136,7 +278,7 @@
"y":0
}],
"nextlayerid":39,
- "nextobjectid":15,
+ "nextobjectid":24,
"orientation":"orthogonal",
"properties":[
{
From 480277df6019cd0923147af01ab0bf5bbec36461 Mon Sep 17 00:00:00 2001
From: Piotr 'pwh' Hanusiak
Date: Tue, 12 Apr 2022 14:45:49 +0200
Subject: [PATCH 08/25] change zone to area on example images for focusable
area
---
docs/maps/images/camera/4_add_zone_type.png | Bin 5253 -> 8617 bytes
.../images/camera/5_click_add_property.png | Bin 41213 -> 46123 bytes
.../images/camera/7_make_sure_checked.png | Bin 9358 -> 11466 bytes
3 files changed, 0 insertions(+), 0 deletions(-)
diff --git a/docs/maps/images/camera/4_add_zone_type.png b/docs/maps/images/camera/4_add_zone_type.png
index 0416d1e475165e0eee273b036888825fe8bf33d7..18224ea59a73c699a0431aa816fe7587a7e1d0ec 100644
GIT binary patch
literal 8617
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
literal 5253
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
T%njhzA?Vf(1FeedwxRz8puncz
diff --git a/docs/maps/images/camera/5_click_add_property.png b/docs/maps/images/camera/5_click_add_property.png
index 9aa96a2fd759749987b4901628c9904970bd6f22..329ac437e01ea22cde1a8e2b9d57cd4cd581331d 100644
GIT binary patch
literal 46123
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