From 1546deb811ed1492d267ea4ca7827ac35a59a7df Mon Sep 17 00:00:00 2001 From: Dennis Postma Date: Thu, 23 Jan 2025 19:47:33 +0100 Subject: [PATCH] Removed depth field from placedMapObject as this is calculated automatically --- package-lock.json | 70 ++++++++++++----------- src/entities/base/placedMapObject.ts | 12 ---- src/entities/map.ts | 3 +- src/events/gameMaster/mapEditor/create.ts | 14 ++--- src/events/gameMaster/mapEditor/list.ts | 27 --------- src/events/gameMaster/mapEditor/update.ts | 1 - 6 files changed, 44 insertions(+), 83 deletions(-) delete mode 100644 src/events/gameMaster/mapEditor/list.ts diff --git a/package-lock.json b/package-lock.json index 4e7de10..55bf39f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1683,12 +1683,6 @@ "@types/node": "*" } }, - "node_modules/@types/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", - "license": "MIT" - }, "node_modules/@types/cors": { "version": "2.8.17", "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz", @@ -1732,9 +1726,9 @@ } }, "node_modules/@types/geojson": { - "version": "7946.0.15", - "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.15.tgz", - "integrity": "sha512-9oSxFzDCT2Rj6DfcHF8G++jxBKS7mBqXl5xrRW+Kbvjry6Uduya2iiwqHPhVXpasAVMBYKkEPGgKhd3+/HZ6xA==", + "version": "7946.0.16", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz", + "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==", "license": "MIT" }, "node_modules/@types/http-errors": { @@ -1785,9 +1779,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "20.17.14", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.14.tgz", - "integrity": "sha512-w6qdYetNL5KRBiSClK/KWai+2IMEJuAj+EujKCumalFOwXtvOXaEan9AuwcRID2IcOIAWSIfR495hBtgKlx2zg==", + "version": "20.17.16", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.16.tgz", + "integrity": "sha512-vOTpLduLkZXePLxHiHsBLp98mHGnl8RptV4YAO3HfKO5UHjDvySGbxKtpYfy8Sx5+WKcgc45qNreJJRVM3L6mw==", "license": "MIT", "dependencies": { "undici-types": "~6.19.2" @@ -2323,6 +2317,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/atomic-sleep": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", @@ -2458,9 +2462,9 @@ "license": "BSD-3-Clause" }, "node_modules/bullmq": { - "version": "5.34.10", - "resolved": "https://registry.npmjs.org/bullmq/-/bullmq-5.34.10.tgz", - "integrity": "sha512-ia6EzpQm1ZPq6GUBSLyfvzJrhdBTd1f3Gn2g9pFtLX4hBOob6QHmcmBzGgPlSCyr/i2Qfe4OdjS21bRd02srbw==", + "version": "5.35.1", + "resolved": "https://registry.npmjs.org/bullmq/-/bullmq-5.35.1.tgz", + "integrity": "sha512-LnzqisWyF4V8KhgFnK7iaJdQn9Q61EdHdCT6sVTzA3jZr6CHxw/OBmBZhzA8Xq4bsvsmvdjr8pmGftC78aWgXQ==", "license": "MIT", "dependencies": { "cron-parser": "^4.9.0", @@ -3030,17 +3034,16 @@ } }, "node_modules/engine.io": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.6.2.tgz", - "integrity": "sha512-gmNvsYi9C8iErnZdVcJnvCpSKbWTt1E8+JZo8b+daLninywUWi5NQ5STSHZ9rFjFO7imNcvb8Pc5pe/wMR5xEw==", + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.6.3.tgz", + "integrity": "sha512-2hkLItQMBkoYSagneiisupWGvsQlWXqzhSMvsjaM8GYbnfUsX7tzYQq9QARnate5LRedVTX+MbkSZAANAr3NtQ==", "license": "MIT", "dependencies": { - "@types/cookie": "^0.4.1", "@types/cors": "^2.8.12", "@types/node": ">=10.0.0", "accepts": "~1.3.4", "base64id": "2.0.0", - "cookie": "~0.7.2", + "cookie": "~1.0.2", "cors": "~2.8.5", "debug": "~4.3.1", "engine.io-parser": "~5.2.1", @@ -3060,12 +3063,12 @@ } }, "node_modules/engine.io/node_modules/cookie": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", - "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", + "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==", "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">=18" } }, "node_modules/engine.io/node_modules/debug": { @@ -4493,12 +4496,13 @@ "license": "MIT" }, "node_modules/is-async-function": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.0.tgz", - "integrity": "sha512-GExz9MtyhlZyXYLxzlJRj5WUCE661zhDa1Yna52CN57AJsymh+DvXXjyveSioqSRdxvUrdKdvqB1b5cVKsNpWQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", "dev": true, "license": "MIT", "dependencies": { + "async-function": "^1.0.0", "call-bound": "^1.0.3", "get-proto": "^1.0.1", "has-tostringtag": "^1.0.2", @@ -5247,9 +5251,9 @@ } }, "node_modules/mariadb/node_modules/@types/node": { - "version": "22.10.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.7.tgz", - "integrity": "sha512-V09KvXxFiutGp6B7XkpaDXlNadZxrzajcY50EuoLIpQ6WWYCSvf19lVIazzfIzQvhUN2HjX12spLojTnhuKlGg==", + "version": "22.10.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.10.tgz", + "integrity": "sha512-X47y/mPNzxviAGY5TcYPtYL8JsY3kAq2n8fMmKoRCxq/c4v4pyGNCzM2R6+M5/umG4ZfHuT+sgqDYqWc9rJ6ww==", "license": "MIT", "dependencies": { "undici-types": "~6.20.0" @@ -5526,9 +5530,9 @@ } }, "node_modules/nodemailer": { - "version": "6.9.16", - "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.9.16.tgz", - "integrity": "sha512-psAuZdTIRN08HKVd/E8ObdV6NO7NTBY3KsC30F7M4H1OnmLCUNaS56FpYxyb26zWLSyYF9Ozch9KYHhHegsiOQ==", + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.10.0.tgz", + "integrity": "sha512-SQ3wZCExjeSatLE/HBaXS5vqUOQk6GtBdIIKxiFdmm01mOQZX/POJkO3SUX1wDiYcwUOJwT23scFSC9fY2H8IA==", "license": "MIT-0", "engines": { "node": ">=6.0.0" diff --git a/src/entities/base/placedMapObject.ts b/src/entities/base/placedMapObject.ts index 3d2e170..8162caa 100644 --- a/src/entities/base/placedMapObject.ts +++ b/src/entities/base/placedMapObject.ts @@ -19,9 +19,6 @@ export class BasePlacedMapObject extends BaseEntity { @ManyToOne({ deleteRule: 'cascade', eager: true }) mapObject!: MapObject - @Property() - depth = 0 - @Property() isRotated = false @@ -58,15 +55,6 @@ export class BasePlacedMapObject extends BaseEntity { return this.mapObject } - setDepth(depth: number) { - this.depth = depth - return this - } - - getDepth() { - return this.depth - } - setIsRotated(isRotated: boolean) { this.isRotated = isRotated return this diff --git a/src/entities/map.ts b/src/entities/map.ts index a248485..76cf594 100644 --- a/src/entities/map.ts +++ b/src/entities/map.ts @@ -2,6 +2,8 @@ import { Entity } from '@mikro-orm/core' import { BaseMap } from '#entities/base/map' +export type MapCacheT = ReturnType | {} + @Entity() export class Map extends BaseMap { public async cache() { @@ -20,7 +22,6 @@ export class Map extends BaseMap { placedMapObjects: this.getPlacedMapObjects().map((placedMapObject) => ({ id: placedMapObject.getId(), mapObject: placedMapObject.getMapObject().getId(), - depth: placedMapObject.getDepth(), isRotated: placedMapObject.getIsRotated(), positionX: placedMapObject.getPositionX(), positionY: placedMapObject.getPositionY() diff --git a/src/events/gameMaster/mapEditor/create.ts b/src/events/gameMaster/mapEditor/create.ts index e542ebf..3adc851 100644 --- a/src/events/gameMaster/mapEditor/create.ts +++ b/src/events/gameMaster/mapEditor/create.ts @@ -1,6 +1,5 @@ import { BaseEvent } from '#application/base/baseEvent' -import { Map } from '#entities/map' -import MapRepository from '#repositories/mapRepository' +import { Map, MapCacheT } from '#entities/map' type Payload = { name: string @@ -13,11 +12,11 @@ export default class MapCreateEvent extends BaseEvent { this.socket.on('gm:map:create', this.handleEvent.bind(this)) } - private async handleEvent(data: Payload, callback: (response: Map[]) => void): Promise { + private async handleEvent(data: Payload, callback: (response: MapCacheT | false) => void): Promise { try { if (!(await this.isCharacterGM())) return - this.logger.info(`User ${(await this.getCharacter())!.getId()} has created a new map via map editor.`) + this.logger.info(`GM ${(await this.getCharacter())!.getId()} has created a new map via map editor.`) const map = new Map() await map @@ -27,14 +26,11 @@ export default class MapCreateEvent extends BaseEvent { .setTiles(Array.from({ length: data.height }, () => Array.from({ length: data.width }, () => 'blank_tile'))) .save() - const mapRepository = new MapRepository() - const mapList = await mapRepository.getAll() - - return callback(mapList) + return callback(await map.cache()) } catch (error: any) { this.logger.error('gm:map:create error', error.message) this.socket.emit('notification', { message: 'Failed to create map.' }) - return callback([]) + return callback(false) } } } diff --git a/src/events/gameMaster/mapEditor/list.ts b/src/events/gameMaster/mapEditor/list.ts deleted file mode 100644 index 2b2f672..0000000 --- a/src/events/gameMaster/mapEditor/list.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { BaseEvent } from '#application/base/baseEvent' -import { Map } from '#entities/map' -import MapRepository from '#repositories/mapRepository' - -interface IPayload {} - -export default class MapListEvent extends BaseEvent { - public listen(): void { - this.socket.on('gm:map:list', this.handleEvent.bind(this)) - } - - private async handleEvent(data: IPayload, callback: (response: Map[]) => void): Promise { - try { - if (!(await this.isCharacterGM())) return - - this.logger.info(`User ${(await this.getCharacter())!.getId()} has listed maps via map editor.`) - - const mapRepository = new MapRepository() - const maps = await mapRepository.getAll() - - return callback(maps) - } catch (error: any) { - this.logger.error('gm:map:list error', error.message) - return callback([]) - } - } -} diff --git a/src/events/gameMaster/mapEditor/update.ts b/src/events/gameMaster/mapEditor/update.ts index af3fec4..9d1031a 100644 --- a/src/events/gameMaster/mapEditor/update.ts +++ b/src/events/gameMaster/mapEditor/update.ts @@ -97,7 +97,6 @@ export default class MapUpdateEvent extends BaseEvent { for (const object of data.placedMapObjects) { const mapObject = new PlacedMapObject() .setMapObject(object.mapObject) - .setDepth(object.depth) .setIsRotated(object.isRotated) .setPositionX(object.positionX) .setPositionY(object.positionY)