diff --git a/src/components/game/zone/Zone.vue b/src/components/game/zone/Zone.vue index e7462d5..ff91bdd 100644 --- a/src/components/game/zone/Zone.vue +++ b/src/components/game/zone/Zone.vue @@ -21,6 +21,14 @@ const zoneStore = useZoneStore() const tileMap = ref(null as Phaser.Tilemaps.Tilemap | null) +onUnmounted(() => { + zoneStore.reset() + gameStore.connection!.off('zone:character:teleport') + gameStore.connection!.off('zone:character:join') + gameStore.connection!.off('zone:character:leave') + gameStore.connection!.off('zone:character:move') +}) + // Event listeners gameStore.connection!.on('zone:character:teleport', async (data: zoneLoadData) => { /** @@ -37,9 +45,6 @@ gameStore.connection!.on('zone:character:teleport', async (data: zoneLoadData) = }) gameStore.connection!.on('zone:character:join', async (data: ZoneCharacter) => { - // If data is from the current user, don't add it to the store - // @TODO: Fix this - if (data.character.id === gameStore.character?.id) return zoneStore.addCharacter(data) }) @@ -47,22 +52,7 @@ gameStore.connection!.on('zone:character:leave', (characterId: number) => { zoneStore.removeCharacter(characterId) }) -gameStore.connection!.on('character:move', (data: { id: number; positionX: number; positionY: number; rotation: number; isMoving: boolean }) => { +gameStore.connection!.on('zone:character:move', (data: { id: number; positionX: number; positionY: number; rotation: number; isMoving: boolean }) => { zoneStore.updateCharacterPosition(data) }) - -onBeforeMount(async () => { - console.log(gameStore.character!.zone!.id) - await loadZoneTilesIntoScene(gameStore.character!.zone!.id, scene) - zoneStore.setZone(gameStore.character!.zone!) - // zoneStore.setCharacters(response.characters) -}) - -onUnmounted(() => { - zoneStore.reset() - gameStore.connection!.off('zone:character:teleport') - gameStore.connection!.off('zone:character:join') - gameStore.connection!.off('zone:character:leave') - gameStore.connection!.off('character:move') -}) diff --git a/src/composables/pointerHandlers/useGamePointerHandlers.ts b/src/composables/pointerHandlers/useGamePointerHandlers.ts index 10f3ed2..6883633 100644 --- a/src/composables/pointerHandlers/useGamePointerHandlers.ts +++ b/src/composables/pointerHandlers/useGamePointerHandlers.ts @@ -48,7 +48,7 @@ export function useGamePointerHandlers(scene: Phaser.Scene, layer: Phaser.Tilema if (distance <= dragThreshold) { const pointerTile = getTile(layer, pointer.worldX, pointer.worldY) if (pointerTile) { - gameStore.connection?.emit('character:move', { + gameStore.connection?.emit('zone:character:move', { positionX: pointerTile.x, positionY: pointerTile.y })