forked from noxious/client
e.e
This commit is contained in:
parent
a0b05d0a5e
commit
5125695b4f
@ -11,11 +11,10 @@ import { storeToRefs } from 'pinia'
|
|||||||
import { placeTile, setAllTiles } from '@/composables/zoneComposable'
|
import { placeTile, setAllTiles } from '@/composables/zoneComposable'
|
||||||
import Controls from '@/components/utilities/Controls.vue'
|
import Controls from '@/components/utilities/Controls.vue'
|
||||||
|
|
||||||
const emit = defineEmits(['tilemap:create', 'tilemap:destroy'])
|
const emit = defineEmits(['tilemap:create'])
|
||||||
|
|
||||||
const zoneStore = useZoneStore()
|
const zoneStore = useZoneStore()
|
||||||
const scene = useScene()
|
const scene = useScene()
|
||||||
const camera = ref(scene.cameras.main)
|
|
||||||
|
|
||||||
const { zone } = storeToRefs(zoneStore)
|
const { zone } = storeToRefs(zoneStore)
|
||||||
const zoneTilemap = createTilemap()
|
const zoneTilemap = createTilemap()
|
||||||
@ -67,7 +66,6 @@ onBeforeMount(() => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
onBeforeUnmount(() => {
|
onBeforeUnmount(() => {
|
||||||
emit('tilemap:destroy')
|
|
||||||
zoneTilemap.destroyLayer('tiles')
|
zoneTilemap.destroyLayer('tiles')
|
||||||
zoneTilemap.removeAllLayers()
|
zoneTilemap.removeAllLayers()
|
||||||
zoneTilemap.destroy()
|
zoneTilemap.destroy()
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<template>
|
<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" />
|
<Objects v-if="tileMap" :tilemap="tileMap as Phaser.Tilemaps.Tilemap" />
|
||||||
<Characters v-if="tileMap" :tilemap="tileMap as Phaser.Tilemaps.Tilemap" />
|
<Characters v-if="tileMap" :tilemap="tileMap as Phaser.Tilemaps.Tilemap" />
|
||||||
</template>
|
</template>
|
||||||
@ -37,7 +37,10 @@ gameStore.connection!.emit('zone:character:join', { zoneId: gameStore.character!
|
|||||||
})
|
})
|
||||||
|
|
||||||
// Event listeners
|
// 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
|
// Fetch assets for new zone
|
||||||
await gameStore.fetchZoneAssets(data.zone.id)
|
await gameStore.fetchZoneAssets(data.zone.id)
|
||||||
await loadAssets(scene)
|
await loadAssets(scene)
|
||||||
@ -68,7 +71,7 @@ gameStore.connection!.on('character:move', (data: ExtendedCharacterT) => {
|
|||||||
|
|
||||||
onBeforeUnmount(() => {
|
onBeforeUnmount(() => {
|
||||||
zoneStore.reset()
|
zoneStore.reset()
|
||||||
gameStore.connection!.off('zone:teleport')
|
gameStore.connection!.off('zone:character:teleport')
|
||||||
gameStore.connection!.off('zone:character:join')
|
gameStore.connection!.off('zone:character:join')
|
||||||
gameStore.connection!.off('zone:character:leave')
|
gameStore.connection!.off('zone:character:leave')
|
||||||
gameStore.connection!.off('character:move')
|
gameStore.connection!.off('character:move')
|
||||||
|
Loading…
x
Reference in New Issue
Block a user