From af260ad22917b30a819f1a0d2ef788b546d82364 Mon Sep 17 00:00:00 2001 From: Piotr Dobrowolski Date: Sun, 3 Jan 2021 12:23:13 +0100 Subject: [PATCH 1/3] front: add AnimatedTiles plugin --- front/package.json | 1 + front/src/Phaser/Game/GameScene.ts | 5 +++++ front/tsconfig.json | 1 + front/yarn.lock | 4 ++++ 4 files changed, 11 insertions(+) diff --git a/front/package.json b/front/package.json index 09f27ec5..d429bd42 100644 --- a/front/package.json +++ b/front/package.json @@ -27,6 +27,7 @@ "generic-type-guard": "^3.2.0", "google-protobuf": "^3.13.0", "phaser": "^3.22.0", + "phaser-animated-tiles": "Informatic/phaser-animated-tiles#2d5c66a9bc426dd4cb2d856c1d599494a74f8067", "queue-typescript": "^1.0.1", "quill": "^1.3.7", "simple-peer": "^9.6.2", diff --git a/front/src/Phaser/Game/GameScene.ts b/front/src/Phaser/Game/GameScene.ts index 181592e2..ab9232d4 100644 --- a/front/src/Phaser/Game/GameScene.ts +++ b/front/src/Phaser/Game/GameScene.ts @@ -68,6 +68,8 @@ import {SelectCharacterScene, SelectCharacterSceneName} from "../Login/SelectCha import {TextureError} from "../../Exception/TextureError"; import {TextField} from "../Components/TextField"; +import AnimatedTiles from "phaser-animated-tiles"; + export interface GameSceneInitInterface { initPosition: PointInterface|null, reconnecting: boolean @@ -114,6 +116,7 @@ export class GameScene extends ResizableScene implements CenterListener { Layers!: Array; Objects!: Array; mapFile!: ITiledMap; + animatedTiles!: AnimatedTiles; groups: Map; startX!: number; startY!: number; @@ -189,6 +192,7 @@ export class GameScene extends ResizableScene implements CenterListener { file: file.src }); }); + this.load.scenePlugin('AnimatedTiles', AnimatedTiles, 'animatedTiles', 'animatedTiles'); this.load.on('filecomplete-tilemapJSON-'+this.MapUrlFile, (key: string, type: string, data: unknown) => { this.onMapLoad(data); }); @@ -400,6 +404,7 @@ export class GameScene extends ResizableScene implements CenterListener { this.initCamera(); + this.animatedTiles.init(this.Map); this.initCirclesCanvas(); // Let's pause the scene if the connection is not established yet diff --git a/front/tsconfig.json b/front/tsconfig.json index 3fce57ea..fbfc8c07 100644 --- a/front/tsconfig.json +++ b/front/tsconfig.json @@ -8,6 +8,7 @@ "downlevelIteration": true, "jsx": "react", "allowJs": true, + "esModuleInterop": true, "strict": true, /* Enable all strict type-checking options. */ "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */ diff --git a/front/yarn.lock b/front/yarn.lock index a31409a6..ea50cc4d 100644 --- a/front/yarn.lock +++ b/front/yarn.lock @@ -3663,6 +3663,10 @@ pbkdf2@^3.0.3: safe-buffer "^5.0.1" sha.js "^2.4.8" +phaser-animated-tiles@Informatic/phaser-animated-tiles#2d5c66a9bc426dd4cb2d856c1d599494a74f8067: + version "2.0.2" + resolved "https://codeload.github.com/Informatic/phaser-animated-tiles/tar.gz/2d5c66a9bc426dd4cb2d856c1d599494a74f8067" + phaser@^3.22.0: version "3.51.0" resolved "https://registry.yarnpkg.com/phaser/-/phaser-3.51.0.tgz#b0c7ee2b21e795830d74f476dd30816a42b023bd" From 1283e86ce89bc5f51706e7ac23d711412e9162dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=A9grier?= Date: Tue, 22 Jun 2021 10:22:48 +0200 Subject: [PATCH 2/3] Adding test map for animated tiles --- front/yarn.lock | 9 ++- maps/tests/animated_tiles.json | 120 +++++++++++++++++++++++++++++++++ maps/tests/animated_tiles.png | Bin 0 -> 8882 bytes maps/tests/index.html | 8 +++ 4 files changed, 136 insertions(+), 1 deletion(-) create mode 100644 maps/tests/animated_tiles.json create mode 100644 maps/tests/animated_tiles.png diff --git a/front/yarn.lock b/front/yarn.lock index 93e99000..3f265035 100644 --- a/front/yarn.lock +++ b/front/yarn.lock @@ -1417,6 +1417,13 @@ create-require@^1.1.0: resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== +cross-env@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf" + integrity sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw== + dependencies: + cross-spawn "^7.0.1" + cross-spawn@^6.0.0, cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" @@ -1428,7 +1435,7 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^7.0.2, cross-spawn@^7.0.3: +cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== diff --git a/maps/tests/animated_tiles.json b/maps/tests/animated_tiles.json new file mode 100644 index 00000000..65ac3b97 --- /dev/null +++ b/maps/tests/animated_tiles.json @@ -0,0 +1,120 @@ +{ "compressionlevel":-1, + "height":10, + "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], + "height":10, + "id":1, + "name":"floor", + "opacity":1, + "type":"tilelayer", + "visible":true, + "width":10, + "x":0, + "y":0 + }, + { + "data":[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], + "height":10, + "id":2, + "name":"start", + "opacity":1, + "type":"tilelayer", + "visible":true, + "width":10, + "x":0, + "y":0 + }, + { + "draworder":"topdown", + "id":3, + "name":"floorLayer", + "objects":[ + { + "height":261.73266830836, + "id":3, + "name":"", + "rotation":0, + "text": + { + "color":"#ffffff", + "fontfamily":"Sans Serif", + "pixelsize":11, + "text":"Test:\nOpen this page\n\nResult:\nThe water tileset should be animated", + "wrap":true + }, + "type":"", + "visible":true, + "width":252.4375, + "x":46.5894222943362, + "y":34.2876372135732 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + }], + "nextlayerid":8, + "nextobjectid":5, + "orientation":"orthogonal", + "renderorder":"right-down", + "tiledversion":"2021.03.23", + "tileheight":32, + "tilesets":[ + { + "columns":8, + "firstgid":1, + "image":"animated_tiles.png", + "imageheight":32, + "imagewidth":256, + "margin":0, + "name":"animated_tiles", + "spacing":0, + "tilecount":8, + "tileheight":32, + "tiles":[ + { + "animation":[ + { + "duration":100, + "tileid":0 + }, + { + "duration":100, + "tileid":1 + }, + { + "duration":100, + "tileid":2 + }, + { + "duration":100, + "tileid":3 + }, + { + "duration":100, + "tileid":4 + }, + { + "duration":100, + "tileid":5 + }, + { + "duration":100, + "tileid":6 + }, + { + "duration":100, + "tileid":7 + }], + "id":0 + }], + "tilewidth":32 + }], + "tilewidth":32, + "type":"map", + "version":1.5, + "width":10 +} \ No newline at end of file diff --git a/maps/tests/animated_tiles.png b/maps/tests/animated_tiles.png new file mode 100644 index 0000000000000000000000000000000000000000..19ac1e05e944daf42daae5508213164ae393d8ce GIT binary patch literal 8882 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 the HelpCameraSettingScene + + + Success Failure Pending + + + Test animated tiles + +