diff --git a/deeployer.libsonnet b/deeployer.libsonnet index 4b606218..52cea293 100644 --- a/deeployer.libsonnet +++ b/deeployer.libsonnet @@ -4,7 +4,7 @@ local tag = namespace, local url = if namespace == "master" then "workadventu.re" else namespace+".workadventure.test.thecodingmachine.com", // develop branch does not use admin because of issue with SSL certificate of admin as of now. - local adminUrl = if namespace == "master" /*|| namespace == "develop"*/ || std.startsWith(namespace, "admin") then "https://"+url else null, + local adminUrl = if namespace == "master" || namespace == "develop" || std.startsWith(namespace, "admin") then "https://"+url else null, "$schema": "https://raw.githubusercontent.com/thecodingmachine/deeployer/master/deeployer.schema.json", "version": "1.0", "containers": { @@ -23,9 +23,12 @@ "JITSI_URL": env.JITSI_URL, "SECRET_JITSI_KEY": env.SECRET_JITSI_KEY, "TURN_STATIC_AUTH_SECRET": env.TURN_STATIC_AUTH_SECRET, - } + if adminUrl != null then { + } + (if adminUrl != null then { "ADMIN_API_URL": adminUrl, - } else {} + } else {}) + if namespace != "master" then { + // Absolutely ugly WorkAround to circumvent broken certificates on the K8S test cluster. Don't do this in production kids! + "NODE_TLS_REJECT_UNAUTHORIZED": "0" + } }, "back2": { "image": "thecodingmachine/workadventure-back:"+tag, @@ -42,9 +45,12 @@ "JITSI_URL": env.JITSI_URL, "SECRET_JITSI_KEY": env.SECRET_JITSI_KEY, "TURN_STATIC_AUTH_SECRET": env.TURN_STATIC_AUTH_SECRET, - } + if adminUrl != null then { + } + (if adminUrl != null then { "ADMIN_API_URL": adminUrl, - } else {} + } else {}) + if namespace != "master" then { + // Absolutely ugly WorkAround to circumvent broken certificates on the K8S test cluster. Don't do this in production kids! + "NODE_TLS_REJECT_UNAUTHORIZED": "0" + } }, "pusher": { "replicas": 2, @@ -61,9 +67,12 @@ "JITSI_URL": env.JITSI_URL, "API_URL": "back1:50051,back2:50051", "SECRET_JITSI_KEY": env.SECRET_JITSI_KEY, - } + if adminUrl != null then { + } + (if adminUrl != null then { "ADMIN_API_URL": adminUrl, - } else {} + } else {}) + if namespace != "master" then { + // Absolutely ugly WorkAround to circumvent broken certificates on the K8S test cluster. Don't do this in production kids! + "NODE_TLS_REJECT_UNAUTHORIZED": "0" + } }, "front": { "image": "thecodingmachine/workadventure-front:"+tag, diff --git a/docker-compose.yaml b/docker-compose.yaml index 98071437..22b807a7 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -43,7 +43,7 @@ services: - ./front:/usr/src/app labels: - "traefik.http.routers.front.rule=Host(`play.workadventure.localhost`)" - - "traefik.http.routers.front.entryPoints=web,traefik" + - "traefik.http.routers.front.entryPoints=web" - "traefik.http.services.front.loadbalancer.server.port=8080" - "traefik.http.routers.front-ssl.rule=Host(`play.workadventure.localhost`)" - "traefik.http.routers.front-ssl.entryPoints=websecure" diff --git a/front/dist/.gitignore b/front/dist/.gitignore index 4fc7097a..a60c53be 100644 --- a/front/dist/.gitignore +++ b/front/dist/.gitignore @@ -1,2 +1,3 @@ index.html +index.tmpl.html.tmp /js/ diff --git a/front/dist/index.tmpl.html b/front/dist/index.tmpl.html index a2b44788..ecf2c671 100644 --- a/front/dist/index.tmpl.html +++ b/front/dist/index.tmpl.html @@ -29,7 +29,11 @@ + + + + WorkAdventure diff --git a/front/dist/resources/style/style.css b/front/dist/resources/style/style.css index e3291ad7..363c214a 100644 --- a/front/dist/resources/style/style.css +++ b/front/dist/resources/style/style.css @@ -1175,6 +1175,31 @@ div.action p.action-body{ margin-left: calc(50% - 75px); border-radius: 15px; } +.popUpElement{ + animation-duration: 1s; + animation-delay: 3s; + animation-name: slidein; +} +.popUpElement p { + font-family: 'Press Start 2P'; + text-align: left; + font-size: 10px; + background-color: #727678; + color: white; +} +.popUpElement div { + width: 300px; + height: 120px; + background-color: #727678; +} + +.popUpElement button { + font-family: 'Press Start 2P'; + position: center; + font-size: 10px; +} + + @keyframes mymove { 0% {bottom: 40px;} 50% {bottom: 30px;} diff --git a/front/src/Phaser/Game/GameScene.ts b/front/src/Phaser/Game/GameScene.ts index fa28650f..18493fde 100644 --- a/front/src/Phaser/Game/GameScene.ts +++ b/front/src/Phaser/Game/GameScene.ts @@ -73,6 +73,8 @@ import {addLoader} from "../Components/Loader"; import {ErrorSceneName} from "../Reconnecting/ErrorScene"; import {localUserStore} from "../../Connexion/LocalUserStore"; import {iframeListener} from "../../Api/IframeListener"; +import DOMElement = Phaser.GameObjects.DOMElement; +import Tween = Phaser.Tweens.Tween; export interface GameSceneInitInterface { initPosition: PointInterface|null, @@ -164,6 +166,7 @@ export class GameScene extends ResizableScene implements CenterListener { private playerName!: string; private characterLayers!: string[]; + private popUpElement : DOMElement| undefined; constructor(private room: Room, MapUrlFile: string, customKey?: string|undefined) { super({ key: customKey ?? room.id @@ -652,6 +655,33 @@ export class GameScene extends ResizableScene implements CenterListener { this.gameMap.onPropertyChange('exitSceneUrl', (newValue, oldValue) => { if (newValue) this.onMapExit(newValue as string); }); + this.gameMap.onPropertyChange('inGameConsoleMessage', (newValue, oldValue, allProps) => { + if (newValue !== undefined) { + this.popUpElement?.destroy(); + this.popUpElement = this.add.dom(2100, 150).createFromHTML(newValue as string); + this.popUpElement.scale = 0; + this.tweens.add({ + targets : this.popUpElement , + scale : 1, + ease : "EaseOut", + duration : 400, + }); + + this.popUpElement.setClassName("popUpElement"); + + } else { + this.tweens.add({ + targets : this.popUpElement , + scale : 0, + ease : "EaseOut", + duration : 400, + onComplete : () => { + this.popUpElement?.destroy(); + this.popUpElement = undefined; + }, + }); + } + }); this.gameMap.onPropertyChange('exitUrl', (newValue, oldValue) => { if (newValue) this.onMapExit(newValue as string); }); diff --git a/front/templater.sh b/front/templater.sh index 1851cdc5..a5a28c9c 100755 --- a/front/templater.sh +++ b/front/templater.sh @@ -2,7 +2,7 @@ set -x set -o nounset errexit template_file_index=dist/index.tmpl.html -generated_file_index=dist/index.html +generated_file_index=dist/index.tmpl.html.tmp tmp_trackcodefile=/tmp/trackcode # To inject tracking code, you have two choices: diff --git a/front/webpack.config.js b/front/webpack.config.js index da686fe2..988c7be6 100644 --- a/front/webpack.config.js +++ b/front/webpack.config.js @@ -46,7 +46,7 @@ module.exports = { plugins: [ new HtmlWebpackPlugin( { - template: './dist/index.tmpl.html', + template: './dist/index.tmpl.html.tmp', minify: { collapseWhitespace: true, keepClosingSlash: true,