This commit is contained in:
Dennis Postma 2024-09-20 20:52:17 +02:00
parent a0b05d0a5e
commit 5125695b4f
2 changed files with 7 additions and 6 deletions

View File

@ -11,11 +11,10 @@ import { storeToRefs } from 'pinia'
import { placeTile, setAllTiles } from '@/composables/zoneComposable'
import Controls from '@/components/utilities/Controls.vue'
const emit = defineEmits(['tilemap:create', 'tilemap:destroy'])
const emit = defineEmits(['tilemap:create'])
const zoneStore = useZoneStore()
const scene = useScene()
const camera = ref(scene.cameras.main)
const { zone } = storeToRefs(zoneStore)
const zoneTilemap = createTilemap()
@ -67,7 +66,6 @@ onBeforeMount(() => {
})
onBeforeUnmount(() => {
emit('tilemap:destroy')
zoneTilemap.destroyLayer('tiles')
zoneTilemap.removeAllLayers()
zoneTilemap.destroy()

View File

@ -1,5 +1,5 @@
<template>
<Tiles :key="zoneStore.zone?.id ?? 0" @tilemap:create="tileMap = $event" @tilemap:destroy="tileMap = null" />
<Tiles :key="zoneStore.zone?.id ?? 0" @tilemap:create="tileMap = $event" />
<Objects v-if="tileMap" :tilemap="tileMap as Phaser.Tilemaps.Tilemap" />
<Characters v-if="tileMap" :tilemap="tileMap as Phaser.Tilemaps.Tilemap" />
</template>
@ -37,7 +37,10 @@ gameStore.connection!.emit('zone:character:join', { zoneId: gameStore.character!
})
// Event listeners
gameStore.connection!.on('zone:teleport', async (data: zoneLoadData) => {
gameStore.connection!.on('zone:character:teleport', async (data: zoneLoadData) => {
/**
* This is the cause of the bug
*/
// Fetch assets for new zone
await gameStore.fetchZoneAssets(data.zone.id)
await loadAssets(scene)
@ -68,7 +71,7 @@ gameStore.connection!.on('character:move', (data: ExtendedCharacterT) => {
onBeforeUnmount(() => {
zoneStore.reset()
gameStore.connection!.off('zone:teleport')
gameStore.connection!.off('zone:character:teleport')
gameStore.connection!.off('zone:character:join')
gameStore.connection!.off('zone:character:leave')
gameStore.connection!.off('character:move')