1
0
forked from noxious/client

Teleport fix 💩

This commit is contained in:
Zaxiure 2024-09-20 23:31:40 +02:00
parent 777be0b4ae
commit e01c367dce
No known key found for this signature in database
2 changed files with 17 additions and 5 deletions

View File

@ -8,7 +8,7 @@
import { useScene } from 'phavuer' import { useScene } from 'phavuer'
import { useGameStore } from '@/stores/game' import { useGameStore } from '@/stores/game'
import { useZoneStore } from '@/stores/zone' 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 type { Character as CharacterT, Zone as ZoneT, ExtendedCharacter as ExtendedCharacterT } from '@/types'
import Tiles from '@/components/zone/Tiles.vue' import Tiles from '@/components/zone/Tiles.vue'
import Objects from '@/components/zone/Objects.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 // Set zone and characters
zoneStore.setZone(response.zone) zoneStore.setZone(response.zone)
zoneStore.setCharacters(response.characters) zoneStore.setCharacters(response.characters)
console.log('--- CHARACTER JOIN')
}) })
// Event listeners // Event listeners
gameStore.connection!.on('zone:character:teleport', async (data: zoneLoadData) => { gameStore.connection!.on('zone:character:teleport', async (data: zoneLoadData) => {
console.log('eeee');
/** /**
* This is the cause of the bug * 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.setZone(data.zone)
zoneStore.setCharacters(data.characters) zoneStore.setCharacters(data.characters)
console.log('--- CHARACTER TELEPORT')
}) })
gameStore.connection!.on('zone:character:join', async (data: ExtendedCharacterT) => { gameStore.connection!.on('zone:character:join', async (data: ExtendedCharacterT) => {
zoneStore.addCharacter(data) zoneStore.addCharacter(data)
console.log('--- CHARACTER JOIN SHORT')
}) })
gameStore.connection!.on('zone:character:leave', (character_id: number) => { gameStore.connection!.on('zone:character:leave', (character_id: number) => {
zoneStore.removeCharacter(character_id) zoneStore.removeCharacter(character_id)
console.log('--- CHARACTER LEAVE')
}) })
gameStore.connection!.on('character:move', (data: ExtendedCharacterT) => { gameStore.connection!.on('character:move', (data: ExtendedCharacterT) => {

View File

@ -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) => { return new Promise((resolve) => {
const gameStore = useGameStore() const gameStore = useGameStore()
let addedLoad = false;
gameStore.assets.forEach((asset) => { gameStore.assets.forEach((asset) => {
if (scene.load.textureManager.exists(asset.key)) return if (scene.load.textureManager.exists(asset.key)) return
addedLoad = true;
if (asset.group === 'sprite_animations') { if (asset.group === 'sprite_animations') {
scene.load.spritesheet(asset.key, config.server_endpoint + asset.url, { frameWidth: asset.frameWidth ?? 0, frameHeight: asset.frameHeight ?? 0 }) scene.load.spritesheet(asset.key, config.server_endpoint + asset.url, { frameWidth: asset.frameWidth ?? 0, frameHeight: asset.frameHeight ?? 0 })
} else { } else {
@ -71,9 +73,14 @@ export const loadAssets = (scene: Phaser.Scene): Promise<void> => {
} }
}) })
if(addedLoad) {
scene.load.start() scene.load.start()
scene.load.on(Phaser.Loader.Events.COMPLETE, () => { scene.load.on(Phaser.Loader.Events.COMPLETE, () => {
console.log('resolved', gameStore.assets);
resolve() resolve()
}) })
} else {
resolve()
}
}) })
} }