Fixes for dynamic zone asset loading
This commit is contained in:
@ -25,26 +25,32 @@ type zoneLoadData = {
|
||||
characters: CharacterT[]
|
||||
}
|
||||
|
||||
gameStore.connection?.emit('zone:character:join', { zoneId: gameStore.character!.zoneId }, (response: zoneLoadData) => {
|
||||
gameStore.connection?.emit('zone:character:join', { zoneId: gameStore.character!.zoneId }, async (response: zoneLoadData) => {
|
||||
await assetStore.fetchAssetsByZoneId(response.zone.id)
|
||||
|
||||
zoneStore.setZone(response.zone)
|
||||
zoneStore.setCharacters(response.characters)
|
||||
})
|
||||
|
||||
// Event listeners
|
||||
/**
|
||||
* Fetch assets from the server when a new zone is loaded
|
||||
*/
|
||||
gameStore.connection?.on('zone:character:load_assets', async (zoneId: number) => {
|
||||
await assetStore.fetchAssetsByZoneId(zoneId)
|
||||
})
|
||||
|
||||
gameStore.connection?.on('zone:teleport', (data: zoneLoadData) => {
|
||||
gameStore.connection?.on('zone:teleport', async (data: zoneLoadData) => {
|
||||
if (zoneStore.zone?.id === data.zone.id) return
|
||||
|
||||
/**
|
||||
* @TODO : Update character via global event server-side, remove this and listen for it somewhere not here
|
||||
*/
|
||||
gameStore.setCharacter({
|
||||
...gameStore.character!,
|
||||
zoneId: data.zone.id
|
||||
})
|
||||
|
||||
await assetStore.fetchAssetsByZoneId(data.zone.id)
|
||||
|
||||
zoneStore.setZone(data.zone)
|
||||
zoneStore.setCharacters(data.characters)
|
||||
})
|
||||
|
||||
gameStore.connection?.on('zone:character:join', (data: ExtendedCharacterT) => {
|
||||
gameStore.connection?.on('zone:character:join', async (data: ExtendedCharacterT) => {
|
||||
zoneStore.addCharacter(data)
|
||||
})
|
||||
|
||||
@ -61,7 +67,6 @@ onBeforeMount(() => {})
|
||||
|
||||
onBeforeUnmount(() => {
|
||||
zoneStore.reset()
|
||||
gameStore.connection?.off('zone:character:load_assets')
|
||||
gameStore.connection?.off('zone:teleport')
|
||||
gameStore.connection?.off('zone:character:join')
|
||||
gameStore.connection?.off('zone:character:leave')
|
||||
|
Reference in New Issue
Block a user