From 839fec1c06b98cf83461009bd3baf8e80e5f12be Mon Sep 17 00:00:00 2001 From: Dennis Postma Date: Mon, 9 Sep 2024 20:41:59 +0200 Subject: [PATCH] aids --- src/events/disconnect.ts | 3 ++- .../zone/{characterMoveEvent.ts => characterMove.ts} | 11 ++++------- src/managers/characterManager.ts | 4 ++++ 3 files changed, 10 insertions(+), 8 deletions(-) rename src/events/zone/{characterMoveEvent.ts => characterMove.ts} (92%) diff --git a/src/events/disconnect.ts b/src/events/disconnect.ts index d6186a6..7151cc8 100644 --- a/src/events/disconnect.ts +++ b/src/events/disconnect.ts @@ -1,6 +1,7 @@ import { Server } from 'socket.io' import { TSocket } from '../utilities/types' import ZoneManager from '../managers/zoneManager' +import CharacterManager from '../managers/characterManager' export default function (socket: TSocket, io: Server) { socket.on('disconnect', (data: any) => { @@ -18,7 +19,7 @@ export default function (socket: TSocket, io: Server) { console.log('User disconnected along with their character') - ZoneManager.removeCharacterFromZone(socket.character.zoneId, socket.character) + CharacterManager.removeCharacter(socket.character) io.in(socket.character.zoneId.toString()).emit('zone:character:leave', socket.character.id) io.emit('character:disconnect', socket.character.id) diff --git a/src/events/zone/characterMoveEvent.ts b/src/events/zone/characterMove.ts similarity index 92% rename from src/events/zone/characterMoveEvent.ts rename to src/events/zone/characterMove.ts index 7292530..b28da76 100644 --- a/src/events/zone/characterMoveEvent.ts +++ b/src/events/zone/characterMove.ts @@ -2,7 +2,6 @@ import { Server } from 'socket.io' import { TSocket, ExtendedCharacter } from '../../utilities/types' import { CharacterMoveService } from '../../services/character/characterMoveService' import { ZoneEventTileService } from '../../services/zoneEventTileService' -import { MovementValidator } from '../../utilities/character/movementValidator' import prisma from '../../utilities/prisma' import { ZoneEventTile, ZoneEventTileTeleport } from '@prisma/client' import Rotation from '../../utilities/character/rotation' @@ -12,10 +11,9 @@ type ZoneEventTileWithTeleport = ZoneEventTile & { teleport: ZoneEventTileTeleport } -export default class CharacterMoveEvent { +export default class CharacterMove { private characterMoveService: CharacterMoveService private zoneEventTileService: ZoneEventTileService - private movementValidator: MovementValidator private nextPath: { [index: number]: { x: number; y: number }[] } = [] constructor( @@ -24,7 +22,6 @@ export default class CharacterMoveEvent { ) { this.characterMoveService = new CharacterMoveService() this.zoneEventTileService = new ZoneEventTileService() - this.movementValidator = new MovementValidator() } public listen(): void { @@ -57,9 +54,9 @@ export default class CharacterMoveEvent { const start = path[i] const end = path[i + 1] - if (!(await this.movementValidator.isValidMove(character, end))) { - break - } + // if (!(await this.movementValidator.isValidMove(character, end))) { + // break + // } if (character.isMoving && character.resetMovement) { character.isMoving = false diff --git a/src/managers/characterManager.ts b/src/managers/characterManager.ts index ac7e6a7..e74fdbc 100644 --- a/src/managers/characterManager.ts +++ b/src/managers/characterManager.ts @@ -12,6 +12,10 @@ class CharacterManager { this.characters = [...this.characters, character] } + public removeCharacter(character: ExtendedCharacter) { + this.characters = this.characters.filter(x => x.id !== character.id); + } + public getCharactersInZone(zone: Zone) { return this.characters.filter(x => x.zoneId === zone.id); }