From ba96ae7dd42e3fe62db82f05bd7a9279d083d7af Mon Sep 17 00:00:00 2001 From: Dennis Postma Date: Thu, 6 Feb 2025 13:12:19 +0100 Subject: [PATCH] Minor improvements --- .../assetManager/mapObject/update.ts | 20 +++++++++---------- src/events/map/characterMove.ts | 3 ++- src/services/characterMoveService.ts | 6 ++++++ 3 files changed, 18 insertions(+), 11 deletions(-) diff --git a/src/events/gameMaster/assetManager/mapObject/update.ts b/src/events/gameMaster/assetManager/mapObject/update.ts index 5c92cc4..5cefbbb 100644 --- a/src/events/gameMaster/assetManager/mapObject/update.ts +++ b/src/events/gameMaster/assetManager/mapObject/update.ts @@ -27,19 +27,19 @@ export default class MapObjectUpdateEvent extends BaseEvent { const mapObject = await mapObjectRepository.getById(data.id) if (!mapObject) return callback(false) - await mapObject - .setName(data.name) - .setTags(data.tags) - .setOriginX(data.originX) - .setOriginY(data.originY) - .setFrameRate(data.frameRate) - .setFrameWidth(data.frameWidth) - .setFrameHeight(data.frameHeight) - .save() + if (data.name !== undefined) mapObject.name = data.name + if (data.tags !== undefined) mapObject.tags = data.tags + if (data.originX !== undefined) mapObject.originX = data.originX + if (data.originY !== undefined) mapObject.originY = data.originY + if (data.frameRate !== undefined) mapObject.frameRate = data.frameRate + if (data.frameWidth !== undefined) mapObject.frameWidth = data.frameWidth + if (data.frameHeight !== undefined) mapObject.frameHeight = data.frameHeight + + await mapObject.save() return callback(true) } catch (error) { - console.error(error) + this.socket.emit('notification', { title: 'Error', message: 'Failed to update mapObject.' }) return callback(false) } } diff --git a/src/events/map/characterMove.ts b/src/events/map/characterMove.ts index 8728d1b..89b7673 100644 --- a/src/events/map/characterMove.ts +++ b/src/events/map/characterMove.ts @@ -23,7 +23,8 @@ export default class CharacterMove extends BaseEvent { // If already moving, cancel current movement and wait for it to fully stop if (mapCharacter.isMoving) { mapCharacter.isMoving = false - await new Promise((resolve) => setTimeout(resolve, 100)) + mapCharacter.currentPath = null + await new Promise((resolve) => setTimeout(resolve, 10)) } const path = await this.characterService.calculatePath(mapCharacter.character, positionX, positionY) diff --git a/src/services/characterMoveService.ts b/src/services/characterMoveService.ts index 353d25b..0e1c8ff 100644 --- a/src/services/characterMoveService.ts +++ b/src/services/characterMoveService.ts @@ -29,6 +29,7 @@ class CharacterMoveService extends BaseService { return null } + // Ensure we're working with valid coordinates const start: Position = { positionX: Math.floor(character.positionX), positionY: Math.floor(character.positionY) @@ -39,6 +40,11 @@ class CharacterMoveService extends BaseService { positionY: Math.floor(targetY) } + // Don't calculate path if start and end are the same + if (start.positionX === end.positionX && start.positionY === end.positionY) { + return null + } + return this.findPath(start, end, grid) }