From 5f88a1a0b9d1d6faac9eb71e971b9f52b5553cfa Mon Sep 17 00:00:00 2001 From: Gregoire Parant Date: Mon, 25 Jan 2021 12:21:40 +0100 Subject: [PATCH 1/5] Exit trigger action - [x] Add trigger message custom - [x] Add trigger for exit map - [x] Update documentation --- front/src/Phaser/Game/GameScene.ts | 44 ++++++++++++++++++++++++------ front/src/WebRtc/LayoutManager.ts | 5 ++++ 2 files changed, 41 insertions(+), 8 deletions(-) diff --git a/front/src/Phaser/Game/GameScene.ts b/front/src/Phaser/Game/GameScene.ts index d5460420..7caa224e 100644 --- a/front/src/Phaser/Game/GameScene.ts +++ b/front/src/Phaser/Game/GameScene.ts @@ -33,9 +33,14 @@ import {ReconnectingSceneName} from "../Reconnecting/ReconnectingScene"; import {lazyLoadPlayerCharacterTextures} from "../Entity/PlayerTexturesLoadingManager"; import { CenterListener, + EXIT_MESSAGE_PROPERTIES, JITSI_MESSAGE_PROPERTIES, layoutManager, LayoutMode, - ON_ACTION_TRIGGER_BUTTON, TRIGGER_JITSI_PROPERTIES, TRIGGER_WEBSITE_PROPERTIES + ON_ACTION_TRIGGER_BUTTON, + TRIGGER_EXIT_PROPERTIES, + TRIGGER_JITSI_PROPERTIES, + TRIGGER_WEBSITE_PROPERTIES, + WEBSITE_MESSAGE_PROPERTIES } from "../../WebRtc/LayoutManager"; import Texture = Phaser.Textures.Texture; import Sprite = Phaser.GameObjects.Sprite; @@ -621,11 +626,27 @@ export class GameScene extends ResizableScene implements CenterListener { } private triggerOnMapLayerPropertyChange(){ + /* @deprecated this.gameMap.onPropertyChange('exitSceneUrl', (newValue, oldValue) => { if (newValue) this.onMapExit(newValue as string); - }); - this.gameMap.onPropertyChange('exitUrl', (newValue, oldValue) => { - if (newValue) this.onMapExit(newValue as string); + });*/ + this.gameMap.onPropertyChange('exitUrl', (newValue, oldValue, allProps) => { + if (newValue === undefined) { + layoutManager.removeActionButton('exitUrl', this.userInputManager); + } else { + const exitTriggerValue = allProps.get(TRIGGER_EXIT_PROPERTIES); + if (exitTriggerValue && exitTriggerValue === ON_ACTION_TRIGGER_BUTTON) { + let message = allProps.get(EXIT_MESSAGE_PROPERTIES); + if(message === undefined){ + message = 'Click on SPACE to entrer in next map'; + } + layoutManager.addActionButton('exitUrl', message.toString(), () => { + this.onMapExit(newValue as string); + }, this.userInputManager); + } else { + this.onMapExit(newValue as string); + } + } }); this.gameMap.onPropertyChange('openWebsite', (newValue, oldValue, allProps) => { if (newValue === undefined) { @@ -639,7 +660,11 @@ export class GameScene extends ResizableScene implements CenterListener { const openWebsiteTriggerValue = allProps.get(TRIGGER_WEBSITE_PROPERTIES); if(openWebsiteTriggerValue && openWebsiteTriggerValue === ON_ACTION_TRIGGER_BUTTON) { - layoutManager.addActionButton('openWebsite', 'Click on SPACE to open the web site', () => { + let message = allProps.get(WEBSITE_MESSAGE_PROPERTIES); + if(message === undefined){ + message = 'Click on SPACE to open the web site'; + } + layoutManager.addActionButton('openWebsite', message.toString(), () => { openWebsiteFunction(); }, this.userInputManager); }else{ @@ -655,7 +680,6 @@ export class GameScene extends ResizableScene implements CenterListener { const openJitsiRoomFunction = () => { if (JITSI_PRIVATE_MODE) { const adminTag = allProps.get("jitsiRoomAdminTag") as string|undefined; - this.connection.emitQueryJitsiJwtMessage(this.instance.replace('/', '-') + "-" + newValue, adminTag); } else { this.startJitsi(newValue as string); @@ -665,14 +689,18 @@ export class GameScene extends ResizableScene implements CenterListener { const jitsiTriggerValue = allProps.get(TRIGGER_JITSI_PROPERTIES); if(jitsiTriggerValue && jitsiTriggerValue === ON_ACTION_TRIGGER_BUTTON) { - layoutManager.addActionButton('jitsiRoom', 'Click on SPACE to enter in jitsi meet room', () => { + let message = allProps.get(JITSI_MESSAGE_PROPERTIES); + if (message === undefined) { + message = 'Click on SPACE to enter in jitsi meet room'; + } + layoutManager.addActionButton('jitsiRoom', message.toString(), () => { openJitsiRoomFunction(); }, this.userInputManager); }else{ openJitsiRoomFunction(); } } - }) + }); this.gameMap.onPropertyChange('silent', (newValue, oldValue) => { if (newValue === undefined || newValue === false || newValue === '') { this.connection.setSilent(false); diff --git a/front/src/WebRtc/LayoutManager.ts b/front/src/WebRtc/LayoutManager.ts index a6b9fa27..db9d0a95 100644 --- a/front/src/WebRtc/LayoutManager.ts +++ b/front/src/WebRtc/LayoutManager.ts @@ -26,6 +26,11 @@ export interface CenterListener { export const ON_ACTION_TRIGGER_BUTTON = 'onaction'; export const TRIGGER_WEBSITE_PROPERTIES = 'openWebsiteTrigger'; export const TRIGGER_JITSI_PROPERTIES = 'jitsiTrigger'; +export const TRIGGER_EXIT_PROPERTIES = 'exitTrigger'; + +export const WEBSITE_MESSAGE_PROPERTIES = 'openWebsiteTriggerMessage'; +export const JITSI_MESSAGE_PROPERTIES = 'jitsiTriggerMessage'; +export const EXIT_MESSAGE_PROPERTIES = 'exitTriggerMessage'; /** * This class is in charge of the video-conference layout. From beb53df3646318d99c730d261ec863410ada59b3 Mon Sep 17 00:00:00 2001 From: Gregoire Parant Date: Mon, 25 Jan 2021 13:18:57 +0100 Subject: [PATCH 2/5] Error problem open new map --- front/src/Phaser/Game/GameScene.ts | 10 +++-- front/src/WebRtc/LayoutManager.ts | 1 + maps/Floor0/floor0.json | 64 ++++++++++++++++++++++++++---- 3 files changed, 64 insertions(+), 11 deletions(-) diff --git a/front/src/Phaser/Game/GameScene.ts b/front/src/Phaser/Game/GameScene.ts index 7caa224e..51126013 100644 --- a/front/src/Phaser/Game/GameScene.ts +++ b/front/src/Phaser/Game/GameScene.ts @@ -631,22 +631,24 @@ export class GameScene extends ResizableScene implements CenterListener { if (newValue) this.onMapExit(newValue as string); });*/ this.gameMap.onPropertyChange('exitUrl', (newValue, oldValue, allProps) => { - if (newValue === undefined) { + if (newValue) this.onMapExit(newValue as string); + /*if (newValue === undefined) { layoutManager.removeActionButton('exitUrl', this.userInputManager); } else { const exitTriggerValue = allProps.get(TRIGGER_EXIT_PROPERTIES); if (exitTriggerValue && exitTriggerValue === ON_ACTION_TRIGGER_BUTTON) { let message = allProps.get(EXIT_MESSAGE_PROPERTIES); - if(message === undefined){ - message = 'Click on SPACE to entrer in next map'; + if (message === undefined) { + message = 'Click on SPACE to enter in next map'; } layoutManager.addActionButton('exitUrl', message.toString(), () => { + layoutManager.removeActionButton('exitUrl', this.userInputManager); this.onMapExit(newValue as string); }, this.userInputManager); } else { this.onMapExit(newValue as string); } - } + }*/ }); this.gameMap.onPropertyChange('openWebsite', (newValue, oldValue, allProps) => { if (newValue === undefined) { diff --git a/front/src/WebRtc/LayoutManager.ts b/front/src/WebRtc/LayoutManager.ts index db9d0a95..ee7e47fe 100644 --- a/front/src/WebRtc/LayoutManager.ts +++ b/front/src/WebRtc/LayoutManager.ts @@ -24,6 +24,7 @@ export interface CenterListener { } export const ON_ACTION_TRIGGER_BUTTON = 'onaction'; + export const TRIGGER_WEBSITE_PROPERTIES = 'openWebsiteTrigger'; export const TRIGGER_JITSI_PROPERTIES = 'jitsiTrigger'; export const TRIGGER_EXIT_PROPERTIES = 'exitTrigger'; diff --git a/maps/Floor0/floor0.json b/maps/Floor0/floor0.json index 3bbd67cd..f5239941 100644 --- a/maps/Floor0/floor0.json +++ b/maps/Floor0/floor0.json @@ -49,6 +49,11 @@ "name":"jitsiTrigger", "type":"string", "value":"onaction" + }, + { + "name":"jitsiTriggerMessage", + "type":"string", + "value":"Test trigger message" }], "type":"tilelayer", "visible":true, @@ -225,6 +230,11 @@ "name":"openWebsiteTrigger", "type":"string", "value":"onaction" + }, + { + "name":"openWebsiteTriggerMessage", + "type":"string", + "value":"Test d'envoi d'un message" }], "type":"tilelayer", "visible":true, @@ -275,6 +285,16 @@ "name":"exit_stairs", "opacity":1, "properties":[ + { + "name":"exitTrigger", + "type":"string", + "value":"onaction" + }, + { + "name":"exitTriggerMessage", + "type":"string", + "value":"Test d'envoi d'un message" + }, { "name":"exitUrl", "type":"string", @@ -293,10 +313,20 @@ "name":"exit_lyon", "opacity":1, "properties":[ + { + "name":"exitTrigger", + "type":"string", + "value":"onaction" + }, + { + "name":"exitTriggerMessage", + "type":"string", + "value":"Test d'envoi d'un message" + }, { "name":"exitUrl", "type":"string", - "value":"..\/..\/..\/fjhzfiunzedoazmnj\/aurelgit.github.io\/wokalys\/map.json" + "value":"\/@\/tcm\/workadventure\/lyon" }], "type":"tilelayer", "visible":true, @@ -312,9 +342,19 @@ "opacity":1, "properties":[ { - "name":"exitSceneUrl", + "name":"exitTrigger", "type":"string", - "value":"https:\/\/npeguin.github.io\/coders-map\/map.json" + "value":"onaction" + }, + { + "name":"exitTriggerMessage", + "type":"string", + "value":"Test d'envoi d'un message" + }, + { + "name":"exitUrl", + "type":"string", + "value":"\/@\/tcm\/workadventure\/coder" }], "type":"tilelayer", "visible":true, @@ -330,9 +370,19 @@ "opacity":1, "properties":[ { - "name":"exitSceneUrl", + "name":"exitTrigger", "type":"string", - "value":"https:\/\/npeguin.github.io\/corridor-map\/map.json" + "value":"onaction" + }, + { + "name":"exitTriggerMessage", + "type":"string", + "value":"Test d'envoi d'un message" + }, + { + "name":"exitUrl", + "type":"string", + "value":"\/@\/tcm\/workadventure\/corridor" }], "type":"tilelayer", "visible":true, @@ -433,7 +483,7 @@ "nextobjectid":2, "orientation":"orthogonal", "renderorder":"right-down", - "tiledversion":"1.3.3", + "tiledversion":"1.4.3", "tileheight":32, "tilesets":[ { @@ -2379,6 +2429,6 @@ }], "tilewidth":32, "type":"map", - "version":1.2, + "version":1.4, "width":46 } \ No newline at end of file From ce423c9fec2deb337eb25f4158e105678f9ea3aa Mon Sep 17 00:00:00 2001 From: Gregoire Parant Date: Wed, 17 Feb 2021 19:29:59 +0100 Subject: [PATCH 3/5] Remove exit trigger action --- front/src/Phaser/Game/GameScene.ts | 22 ++-------------------- 1 file changed, 2 insertions(+), 20 deletions(-) diff --git a/front/src/Phaser/Game/GameScene.ts b/front/src/Phaser/Game/GameScene.ts index d6dc7dbb..713c458a 100644 --- a/front/src/Phaser/Game/GameScene.ts +++ b/front/src/Phaser/Game/GameScene.ts @@ -647,29 +647,11 @@ export class GameScene extends ResizableScene implements CenterListener { } private triggerOnMapLayerPropertyChange(){ - /* @deprecated this.gameMap.onPropertyChange('exitSceneUrl', (newValue, oldValue) => { if (newValue) this.onMapExit(newValue as string); - });*/ - this.gameMap.onPropertyChange('exitUrl', (newValue, oldValue, allProps) => { + }); + this.gameMap.onPropertyChange('exitUrl', (newValue, oldValue) => { if (newValue) this.onMapExit(newValue as string); - /*if (newValue === undefined) { - layoutManager.removeActionButton('exitUrl', this.userInputManager); - } else { - const exitTriggerValue = allProps.get(TRIGGER_EXIT_PROPERTIES); - if (exitTriggerValue && exitTriggerValue === ON_ACTION_TRIGGER_BUTTON) { - let message = allProps.get(EXIT_MESSAGE_PROPERTIES); - if (message === undefined) { - message = 'Click on SPACE to enter in next map'; - } - layoutManager.addActionButton('exitUrl', message.toString(), () => { - layoutManager.removeActionButton('exitUrl', this.userInputManager); - this.onMapExit(newValue as string); - }, this.userInputManager); - } else { - this.onMapExit(newValue as string); - } - }*/ }); this.gameMap.onPropertyChange('openWebsite', (newValue, oldValue, allProps) => { if (newValue === undefined) { From 9b7b3eb140f8039f66b68e37e74c0e47f33a09dc Mon Sep 17 00:00:00 2001 From: Gregoire Parant Date: Wed, 17 Feb 2021 19:31:05 +0100 Subject: [PATCH 4/5] Update feedback @tabascoeye --- front/src/Phaser/Game/GameScene.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/front/src/Phaser/Game/GameScene.ts b/front/src/Phaser/Game/GameScene.ts index 713c458a..0127d790 100644 --- a/front/src/Phaser/Game/GameScene.ts +++ b/front/src/Phaser/Game/GameScene.ts @@ -667,7 +667,7 @@ export class GameScene extends ResizableScene implements CenterListener { if(openWebsiteTriggerValue && openWebsiteTriggerValue === ON_ACTION_TRIGGER_BUTTON) { let message = allProps.get(WEBSITE_MESSAGE_PROPERTIES); if(message === undefined){ - message = 'Click on SPACE to open the web site'; + message = 'Press on SPACE to open the web site'; } layoutManager.addActionButton('openWebsite', message.toString(), () => { openWebsiteFunction(); @@ -698,7 +698,7 @@ export class GameScene extends ResizableScene implements CenterListener { if(jitsiTriggerValue && jitsiTriggerValue === ON_ACTION_TRIGGER_BUTTON) { let message = allProps.get(JITSI_MESSAGE_PROPERTIES); if (message === undefined) { - message = 'Click on SPACE to enter in jitsi meet room'; + message = 'Press on SPACE to enter in jitsi meet room'; } layoutManager.addActionButton('jitsiRoom', message.toString(), () => { openJitsiRoomFunction(); From fff0cbc3f6d277a02af32a2f66eca59d73261d6a Mon Sep 17 00:00:00 2001 From: Gregoire Parant Date: Wed, 17 Feb 2021 19:40:00 +0100 Subject: [PATCH 5/5] Revert message exit --- front/src/Phaser/Game/GameScene.ts | 2 -- front/src/WebRtc/LayoutManager.ts | 2 -- 2 files changed, 4 deletions(-) diff --git a/front/src/Phaser/Game/GameScene.ts b/front/src/Phaser/Game/GameScene.ts index 0127d790..a90cb6b1 100644 --- a/front/src/Phaser/Game/GameScene.ts +++ b/front/src/Phaser/Game/GameScene.ts @@ -33,12 +33,10 @@ import {ReconnectingSceneName} from "../Reconnecting/ReconnectingScene"; import {lazyLoadPlayerCharacterTextures, loadCustomTexture} from "../Entity/PlayerTexturesLoadingManager"; import { CenterListener, - EXIT_MESSAGE_PROPERTIES, JITSI_MESSAGE_PROPERTIES, layoutManager, LayoutMode, ON_ACTION_TRIGGER_BUTTON, - TRIGGER_EXIT_PROPERTIES, TRIGGER_JITSI_PROPERTIES, TRIGGER_WEBSITE_PROPERTIES, WEBSITE_MESSAGE_PROPERTIES diff --git a/front/src/WebRtc/LayoutManager.ts b/front/src/WebRtc/LayoutManager.ts index d0be5e90..f0a88a98 100644 --- a/front/src/WebRtc/LayoutManager.ts +++ b/front/src/WebRtc/LayoutManager.ts @@ -27,11 +27,9 @@ export const ON_ACTION_TRIGGER_BUTTON = 'onaction'; export const TRIGGER_WEBSITE_PROPERTIES = 'openWebsiteTrigger'; export const TRIGGER_JITSI_PROPERTIES = 'jitsiTrigger'; -export const TRIGGER_EXIT_PROPERTIES = 'exitTrigger'; export const WEBSITE_MESSAGE_PROPERTIES = 'openWebsiteTriggerMessage'; export const JITSI_MESSAGE_PROPERTIES = 'jitsiTriggerMessage'; -export const EXIT_MESSAGE_PROPERTIES = 'exitTriggerMessage'; /** * This class is in charge of the video-conference layout.