From 14bddb5f1178c18f5a488255e645334d447389f3 Mon Sep 17 00:00:00 2001 From: RSamaium Date: Thu, 11 Jan 2024 17:30:35 +0100 Subject: [PATCH 1/8] fix #community-250 --- packages/client/src/Tilemap/index.ts | 4 +++- packages/sample2/main/events/npc.ts | 9 --------- packages/sample2/main/worlds/maps/map.tmx | 4 ++-- 3 files changed, 5 insertions(+), 12 deletions(-) diff --git a/packages/client/src/Tilemap/index.ts b/packages/client/src/Tilemap/index.ts index 2045f045..221ec3b9 100644 --- a/packages/client/src/Tilemap/index.ts +++ b/packages/client/src/Tilemap/index.ts @@ -108,7 +108,9 @@ export default class TileMap extends Container { // if (yObject - tile.y >= height) { // return false // } - const zIntersection = intersection([zObject, zObject + height], [realZ, realZ + tile.height]) + // Always get tile.height for height. TODO: Fix this the height of the character. To be seen according to future implementations... + // Discussion: https://community.rpgjs.dev/d/250-rpgjs-v420/6 + const zIntersection = intersection([zObject, zObject + tile.height /** Old code: height */], [realZ, realZ + tile.height]) if (!zIntersection) { return true } diff --git a/packages/sample2/main/events/npc.ts b/packages/sample2/main/events/npc.ts index bac70068..18d90763 100644 --- a/packages/sample2/main/events/npc.ts +++ b/packages/sample2/main/events/npc.ts @@ -12,14 +12,5 @@ export default class CatEvent extends RpgEvent { Components.text('{id}') ) this.speed = Speed.Slow - this.attachShape({ - height: 100, - width: 100, - positioning: ShapePositioning.Center - }) - } - - onDetect(player, shape) { - this.moveTo(player).subscribe() } } \ No newline at end of file diff --git a/packages/sample2/main/worlds/maps/map.tmx b/packages/sample2/main/worlds/maps/map.tmx index 3dc3d0c4..6d128d5c 100644 --- a/packages/sample2/main/worlds/maps/map.tmx +++ b/packages/sample2/main/worlds/maps/map.tmx @@ -8,14 +8,14 @@ - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAASAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAASAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAACgAAAAkAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAoAAAAAAAAAEQAAABIAAAARAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAASAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAKAAAAAAAAAAAAAAAAAAAAEQAAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAAEgAAAAkAAAAKAAAACQAAAAoAAAAAAAAAAAAAAAkAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAAEgAAABEAAAASAAAAAAAAAAAAAAARAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== - + From 4adfaea557b386556b459d7f64b8a24a24116aa8 Mon Sep 17 00:00:00 2001 From: RSamaium Date: Fri, 12 Jan 2024 09:15:35 +0100 Subject: [PATCH 2/8] fix: tiled parser throw error --- packages/tiled/src/parser/parser.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/tiled/src/parser/parser.ts b/packages/tiled/src/parser/parser.ts index dfcc92f9..26d0f7c5 100644 --- a/packages/tiled/src/parser/parser.ts +++ b/packages/tiled/src/parser/parser.ts @@ -205,6 +205,9 @@ export class TiledParser { const setLayer = (type) => { if (!type) return TiledParser.toArray(type).forEach((val: any) => { + if (this.layers.has(+val._attributes.id)) { + throw new Error(`Tiled Parser Error: Layer with id ${val._attributes.id} already exists`) + } this.layers.set(+val._attributes.id, val) }) } From 4b34a15d60261501069100fb22aa0901b32a1d98 Mon Sep 17 00:00:00 2001 From: RSamaium Date: Fri, 12 Jan 2024 09:18:20 +0100 Subject: [PATCH 3/8] fix: spritesheetDirectories warning --- packages/compiler/src/jsonSchema/compilation.ts | 6 ++++++ packages/sample2/rpg.toml | 6 +++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/compiler/src/jsonSchema/compilation.ts b/packages/compiler/src/jsonSchema/compilation.ts index 1698445d..50a0be20 100644 --- a/packages/compiler/src/jsonSchema/compilation.ts +++ b/packages/compiler/src/jsonSchema/compilation.ts @@ -36,5 +36,11 @@ export default { "vite": { "type": "object", "additionalProperties": true + }, + "spritesheetDirectories": { + "type": "array", + "items": { + "type": "string" + } } } diff --git a/packages/sample2/rpg.toml b/packages/sample2/rpg.toml index f91ca9ee..4088b2d4 100644 --- a/packages/sample2/rpg.toml +++ b/packages/sample2/rpg.toml @@ -9,6 +9,8 @@ modules = [ # '@rpgjs/title-screen' ] +spritesheetDirectories = [] + [start] map = 'map' graphic = 'male' @@ -22,4 +24,6 @@ modules = [ [compilerOptions.build] serverUrl = '$ENV:VITE_SERVER_URL' - pwaEnabled = false \ No newline at end of file + pwaEnabled = false + + From 8221085a962b1555aa20ba154b6790d4522da971 Mon Sep 17 00:00:00 2001 From: RSamaium Date: Fri, 12 Jan 2024 09:48:21 +0100 Subject: [PATCH 4/8] fix: #community-261 --- packages/client/src/Presets/AnimationSpritesheet.ts | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/packages/client/src/Presets/AnimationSpritesheet.ts b/packages/client/src/Presets/AnimationSpritesheet.ts index ae057fbf..20bc87af 100644 --- a/packages/client/src/Presets/AnimationSpritesheet.ts +++ b/packages/client/src/Presets/AnimationSpritesheet.ts @@ -1,14 +1,19 @@ import { Direction } from '@rpgjs/common' import { Animation } from '../Effects/AnimationCharacter' -export const RMSpritesheet = (framesWidth, framesHeight, frameStand = 1) => { +export const RMSpritesheet = (framesWidth: number, framesHeight: number, frameStand: number = 1) => { + + if (framesWidth <= frameStand) { + frameStand = framesWidth - 1 + } const frameY = direction => { + const gap = Math.max(4 - framesHeight, 0) return { [Direction.Down]: 0, - [Direction.Left]: 1, - [Direction.Right]: 2, - [Direction.Up]: 3 + [Direction.Left]: Math.max(0, 1 - gap), + [Direction.Right]: Math.max(0, 2 - gap), + [Direction.Up]: Math.max(0, 3 - gap) }[direction] } From 53dce23b54003384cbc6ff18a55f7781bb908b79 Mon Sep 17 00:00:00 2001 From: RSamaium Date: Fri, 12 Jan 2024 10:03:54 +0100 Subject: [PATCH 5/8] Disable player movement in Gui --- packages/sample2/main/worlds/maps/map.tmx | 4 ++-- packages/server/src/Gui/Gui.ts | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/sample2/main/worlds/maps/map.tmx b/packages/sample2/main/worlds/maps/map.tmx index 6d128d5c..da2ecd70 100644 --- a/packages/sample2/main/worlds/maps/map.tmx +++ b/packages/sample2/main/worlds/maps/map.tmx @@ -15,10 +15,10 @@ - + - + diff --git a/packages/server/src/Gui/Gui.ts b/packages/server/src/Gui/Gui.ts index 730b7820..d62082e2 100644 --- a/packages/server/src/Gui/Gui.ts +++ b/packages/server/src/Gui/Gui.ts @@ -18,6 +18,7 @@ export class Gui extends EventEmitter { blockPlayerInput = false } = {}): Promise { return new Promise((resolve) => { + this.player.moving = false this.player.emit('gui.open', { guiId: this.id, data From 924ec6d6636b51eeb46cb1509c7244f69a8adb49 Mon Sep 17 00:00:00 2001 From: RSamaium Date: Fri, 12 Jan 2024 10:34:49 +0100 Subject: [PATCH 6/8] fix: #277 #community-256 --- .../compiler/src/build/vite-plugin-config.toml.ts | 11 +++++++++++ packages/server/src/express/server.ts | 10 ---------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/packages/compiler/src/build/vite-plugin-config.toml.ts b/packages/compiler/src/build/vite-plugin-config.toml.ts index eb3cac9a..0fbaa5b2 100644 --- a/packages/compiler/src/build/vite-plugin-config.toml.ts +++ b/packages/compiler/src/build/vite-plugin-config.toml.ts @@ -514,6 +514,7 @@ export default function configTomlPlugin(options: ClientBuildConfigOptions = {}, else if (id.endsWith('virtual-server.ts')) { const codeToTransform = dd` import { expressServer } from '@rpgjs/server/express' + import { RpgWorld } from '@rpgjs/server' import * as url from 'url' import modules from './${MODULE_NAME}' import globalConfig from './${GLOBAL_CONFIG_SERVER}' @@ -524,6 +525,16 @@ export default function configTomlPlugin(options: ClientBuildConfigOptions = {}, globalConfig, basePath: __dirname, envs: ${envsString} + }).then(({ server, game }) => { + if (import.meta['hot']) { + import.meta['hot'].on("vite:beforeFullReload", () => { + server.close(); + RpgWorld.getPlayers().forEach(player => { + player.gameReload(); + }); + game.stop(); + }); + } }) `; return codeToTransform diff --git a/packages/server/src/express/server.ts b/packages/server/src/express/server.ts index 63f49c9d..8d0b818f 100644 --- a/packages/server/src/express/server.ts +++ b/packages/server/src/express/server.ts @@ -83,15 +83,5 @@ export function expressServer(modules: ModuleType[], options: ExpressServerOptio process.on('unhandledRejection', function (reason: any) { console.log(pe.render(reason)) }) - - if (import.meta['hot']) { - import.meta['hot'].on("vite:beforeFullReload", () => { - server.close() - Query.getPlayers().forEach(player => { - player.gameReload() - }) - rpgGame.stop() - }); - } }) } \ No newline at end of file From 9592d186cdb7d66dba4fe7b49d31b2fc97686677 Mon Sep 17 00:00:00 2001 From: RSamaium Date: Fri, 12 Jan 2024 10:41:42 +0100 Subject: [PATCH 7/8] fix: simple-room exports --- packages/server/package-lock.json | 50 +++++++++++++++---------------- packages/server/package.json | 2 +- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/packages/server/package-lock.json b/packages/server/package-lock.json index 84853cea..bb25c961 100644 --- a/packages/server/package-lock.json +++ b/packages/server/package-lock.json @@ -20,7 +20,7 @@ "pretty-error": "^4.0.0", "rxjs": "7.8.0", "sat": "^0.9.0", - "simple-room": "^3.1.1", + "simple-room": "^3.1.2", "socket.io": "^4.6.1" }, "devDependencies": { @@ -2468,9 +2468,9 @@ "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" }, "node_modules/@rpgjs/common": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/@rpgjs/common/-/common-4.1.3.tgz", - "integrity": "sha512-L4jeEy3p3S2ai4kAafLNR8Vc5yRXEPgzqFwCVckzSByLfu0irchw8BfMEFSAG8UEIZvhqpvCEPcMhNVJmDslkQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@rpgjs/common/-/common-4.2.0.tgz", + "integrity": "sha512-r7+abn8oKjljhfHd3liOnf08MiwXL1T5Dc2+tQaeL/8KQx0M7eTbbjQIrwxmqvDyF0h5qxJyTATlFDN6+CYlMQ==", "dependencies": { "@rpgjs/tiled": "^4.0.5", "@rpgjs/types": "^4.0.5", @@ -2481,9 +2481,9 @@ } }, "node_modules/@rpgjs/compiler": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/@rpgjs/compiler/-/compiler-4.1.3.tgz", - "integrity": "sha512-53AaVsbq3QJRdNyvkWhKez/P36h501IlN/PGz7RD3FarXEjSCP278Du59CcNa9O8j5rl7p0gsZsr1fd2THacvg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@rpgjs/compiler/-/compiler-4.2.0.tgz", + "integrity": "sha512-x2eOAZ/UmGtA6QVt/rG9pvVVnzChrzH9WKA9YkdkG8DBkeT0uS12WW+SnZHTj4gdtQ3565vdDiiHKCC49a03DQ==", "dev": true, "dependencies": { "@babel/core": "^7.21.4", @@ -2524,9 +2524,9 @@ } }, "node_modules/@rpgjs/database": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/@rpgjs/database/-/database-4.1.3.tgz", - "integrity": "sha512-0RiGuI2/NMiKC7DIaqs++okciewsPuLQgadRF+vrbPGEY4YO4kD8e+fe+Fn1mErWwTLIkAqNKq4pLNafesgF1w==" + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@rpgjs/database/-/database-4.2.0.tgz", + "integrity": "sha512-MBpBxSm5YydfRkKSIh1FzN2CpKOTIZNYZ33+yB5tRljaoQ0ci9kWjowjbJN58NXOTGED8ubuQMEV7V2tndpHDw==" }, "node_modules/@rpgjs/tiled": { "version": "4.0.5", @@ -6881,9 +6881,9 @@ } }, "node_modules/simple-room": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/simple-room/-/simple-room-3.1.1.tgz", - "integrity": "sha512-vNCajvUdyN+h6ydzJ9xnIlnM0aTiBiByPva/iwlDJbvCK1nbzlCDJmm4XnqUGGfV0Z6Kf5FpSiK796vV2C0cXQ==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/simple-room/-/simple-room-3.1.2.tgz", + "integrity": "sha512-XUzbO2+ahpxgaM67G+7+BgErxtvoCr1wlqsVNJZ2YZzBbiUc/RlsAfJU5lxBopT7634YYqRaoHDgDt0hsHgXuw==", "dependencies": { "@google-cloud/agones-sdk": "^1.35.0", "msgpack-lite": "0.1.26", @@ -10744,9 +10744,9 @@ "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" }, "@rpgjs/common": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/@rpgjs/common/-/common-4.1.3.tgz", - "integrity": "sha512-L4jeEy3p3S2ai4kAafLNR8Vc5yRXEPgzqFwCVckzSByLfu0irchw8BfMEFSAG8UEIZvhqpvCEPcMhNVJmDslkQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@rpgjs/common/-/common-4.2.0.tgz", + "integrity": "sha512-r7+abn8oKjljhfHd3liOnf08MiwXL1T5Dc2+tQaeL/8KQx0M7eTbbjQIrwxmqvDyF0h5qxJyTATlFDN6+CYlMQ==", "requires": { "@rpgjs/tiled": "^4.0.5", "@rpgjs/types": "^4.0.5", @@ -10757,9 +10757,9 @@ } }, "@rpgjs/compiler": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/@rpgjs/compiler/-/compiler-4.1.3.tgz", - "integrity": "sha512-53AaVsbq3QJRdNyvkWhKez/P36h501IlN/PGz7RD3FarXEjSCP278Du59CcNa9O8j5rl7p0gsZsr1fd2THacvg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@rpgjs/compiler/-/compiler-4.2.0.tgz", + "integrity": "sha512-x2eOAZ/UmGtA6QVt/rG9pvVVnzChrzH9WKA9YkdkG8DBkeT0uS12WW+SnZHTj4gdtQ3565vdDiiHKCC49a03DQ==", "dev": true, "requires": { "@babel/core": "^7.21.4", @@ -10797,9 +10797,9 @@ } }, "@rpgjs/database": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/@rpgjs/database/-/database-4.1.3.tgz", - "integrity": "sha512-0RiGuI2/NMiKC7DIaqs++okciewsPuLQgadRF+vrbPGEY4YO4kD8e+fe+Fn1mErWwTLIkAqNKq4pLNafesgF1w==" + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@rpgjs/database/-/database-4.2.0.tgz", + "integrity": "sha512-MBpBxSm5YydfRkKSIh1FzN2CpKOTIZNYZ33+yB5tRljaoQ0ci9kWjowjbJN58NXOTGED8ubuQMEV7V2tndpHDw==" }, "@rpgjs/tiled": { "version": "4.0.5", @@ -14067,9 +14067,9 @@ "dev": true }, "simple-room": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/simple-room/-/simple-room-3.1.1.tgz", - "integrity": "sha512-vNCajvUdyN+h6ydzJ9xnIlnM0aTiBiByPva/iwlDJbvCK1nbzlCDJmm4XnqUGGfV0Z6Kf5FpSiK796vV2C0cXQ==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/simple-room/-/simple-room-3.1.2.tgz", + "integrity": "sha512-XUzbO2+ahpxgaM67G+7+BgErxtvoCr1wlqsVNJZ2YZzBbiUc/RlsAfJU5lxBopT7634YYqRaoHDgDt0hsHgXuw==", "requires": { "@google-cloud/agones-sdk": "^1.35.0", "msgpack-lite": "0.1.26", diff --git a/packages/server/package.json b/packages/server/package.json index 13968b47..9f76054d 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -38,7 +38,7 @@ "pretty-error": "^4.0.0", "rxjs": "7.8.0", "sat": "^0.9.0", - "simple-room": "^3.1.1", + "simple-room": "^3.1.2", "socket.io": "^4.6.1" }, "gitHead": "5abe6ca78be96524d74a052a230f2315c900ddee", From d057e1736475e03a0553882a53b96a4d77e65acf Mon Sep 17 00:00:00 2001 From: RSamaium Date: Fri, 12 Jan 2024 11:13:55 +0100 Subject: [PATCH 8/8] fix: lag after action --- packages/common/src/Game.ts | 4 +++- packages/server/src/server.ts | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/common/src/Game.ts b/packages/common/src/Game.ts index 0af91a23..4862c631 100644 --- a/packages/common/src/Game.ts +++ b/packages/common/src/Game.ts @@ -84,7 +84,7 @@ export class RpgCommonGame extends EventEmitter { } const routesMove: any = [] - + while (player.pendingMove.length > 0) { const inputData = player.pendingMove.shift() @@ -131,6 +131,7 @@ export class RpgCommonGame extends EventEmitter { input == Direction.Up || input == Direction.Down ) { + player.moving = true moving = true const isMove = await player.moveByDirection(+input, deltaTimeInt || 1) if (isMove) { @@ -149,6 +150,7 @@ export class RpgCommonGame extends EventEmitter { inputs.push(input) } + return { player, inputs diff --git a/packages/server/src/server.ts b/packages/server/src/server.ts index e250a90c..d69609e6 100644 --- a/packages/server/src/server.ts +++ b/packages/server/src/server.ts @@ -293,7 +293,7 @@ export class RpgServerEngine { if (!playerInstance) continue const player = playerInstance.otherPossessedPlayer ?? playerInstance if (player.pendingMove.length > 0) { - player.moving = true + const lastFrame = player.pendingMove[player.pendingMove.length - 1] if (this.inputOptions.workers) obj.push(player.toObject()) else {