forked from noxious/client
Teleport fix 💩
This commit is contained in:
parent
777be0b4ae
commit
e01c367dce
@ -8,7 +8,7 @@
|
||||
import { useScene } from 'phavuer'
|
||||
import { useGameStore } from '@/stores/game'
|
||||
import { useZoneStore } from '@/stores/zone'
|
||||
import { onBeforeUnmount, ref } from 'vue'
|
||||
import { onBeforeUnmount, ref, toRaw } from 'vue'
|
||||
import type { Character as CharacterT, Zone as ZoneT, ExtendedCharacter as ExtendedCharacterT } from '@/types'
|
||||
import Tiles from '@/components/zone/Tiles.vue'
|
||||
import Objects from '@/components/zone/Objects.vue'
|
||||
@ -34,10 +34,12 @@ gameStore.connection!.emit('zone:character:join', { zoneId: gameStore.character!
|
||||
// Set zone and characters
|
||||
zoneStore.setZone(response.zone)
|
||||
zoneStore.setCharacters(response.characters)
|
||||
console.log('--- CHARACTER JOIN')
|
||||
})
|
||||
|
||||
// Event listeners
|
||||
gameStore.connection!.on('zone:character:teleport', async (data: zoneLoadData) => {
|
||||
console.log('eeee');
|
||||
/**
|
||||
* This is the cause of the bug
|
||||
*/
|
||||
@ -55,14 +57,17 @@ gameStore.connection!.on('zone:character:teleport', async (data: zoneLoadData) =
|
||||
|
||||
zoneStore.setZone(data.zone)
|
||||
zoneStore.setCharacters(data.characters)
|
||||
console.log('--- CHARACTER TELEPORT')
|
||||
})
|
||||
|
||||
gameStore.connection!.on('zone:character:join', async (data: ExtendedCharacterT) => {
|
||||
zoneStore.addCharacter(data)
|
||||
console.log('--- CHARACTER JOIN SHORT')
|
||||
})
|
||||
|
||||
gameStore.connection!.on('zone:character:leave', (character_id: number) => {
|
||||
zoneStore.removeCharacter(character_id)
|
||||
console.log('--- CHARACTER LEAVE')
|
||||
})
|
||||
|
||||
gameStore.connection!.on('character:move', (data: ExtendedCharacterT) => {
|
||||
|
@ -58,12 +58,14 @@ export const sortByIsometricDepth = <T extends { positionX: number; positionY: n
|
||||
})
|
||||
}
|
||||
|
||||
export const loadAssets = (scene: Phaser.Scene): Promise<void> => {
|
||||
export const loadAssets = (scene: Phaser.Scene, test): Promise<void> => {
|
||||
return new Promise((resolve) => {
|
||||
const gameStore = useGameStore()
|
||||
let addedLoad = false;
|
||||
|
||||
gameStore.assets.forEach((asset) => {
|
||||
if (scene.load.textureManager.exists(asset.key)) return
|
||||
addedLoad = true;
|
||||
if (asset.group === 'sprite_animations') {
|
||||
scene.load.spritesheet(asset.key, config.server_endpoint + asset.url, { frameWidth: asset.frameWidth ?? 0, frameHeight: asset.frameHeight ?? 0 })
|
||||
} else {
|
||||
@ -71,9 +73,14 @@ export const loadAssets = (scene: Phaser.Scene): Promise<void> => {
|
||||
}
|
||||
})
|
||||
|
||||
scene.load.start()
|
||||
scene.load.on(Phaser.Loader.Events.COMPLETE, () => {
|
||||
if(addedLoad) {
|
||||
scene.load.start()
|
||||
scene.load.on(Phaser.Loader.Events.COMPLETE, () => {
|
||||
console.log('resolved', gameStore.assets);
|
||||
resolve()
|
||||
})
|
||||
} else {
|
||||
resolve()
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user