asset downloading from server works now

This commit is contained in:
Dennis Postma 2024-06-30 02:04:09 +02:00
parent 270b14d8e5
commit 8c7d817bfb
2 changed files with 18 additions and 9 deletions

View File

@ -21,7 +21,7 @@ import config from '@/config'
import Tileset = Phaser.Tilemaps.Tileset import Tileset = Phaser.Tilemaps.Tileset
import TilemapLayer = Phaser.Tilemaps.TilemapLayer import TilemapLayer = Phaser.Tilemaps.TilemapLayer
import { Container, TilemapLayer as TilemapLayerC, useScene, Image } from 'phavuer' import { Container, TilemapLayer as TilemapLayerC, useScene, Image } from 'phavuer'
import { onBeforeMount, onBeforeUnmount, onMounted, ref, type Ref, watch } from 'vue' import { onBeforeMount, onBeforeUnmount, onMounted } from 'vue'
import Controls from '@/components/utilities/Controls.vue' import Controls from '@/components/utilities/Controls.vue'
import { useSocketStore } from '@/stores/socket' import { useSocketStore } from '@/stores/socket'
import Toolbar from '@/components/utilities/zoneEditor/Toolbar.vue' import Toolbar from '@/components/utilities/zoneEditor/Toolbar.vue'
@ -29,8 +29,7 @@ import Tiles from '@/components/utilities/zoneEditor/Tiles.vue'
import { useZoneEditorStore } from '@/stores/zoneEditor' import { useZoneEditorStore } from '@/stores/zoneEditor'
import ZoneSettings from '@/components/utilities/zoneEditor/ZoneSettings.vue' import ZoneSettings from '@/components/utilities/zoneEditor/ZoneSettings.vue'
import Decorations from '@/components/utilities/zoneEditor/Decorations.vue' import Decorations from '@/components/utilities/zoneEditor/Decorations.vue'
import { generateTilemap, tileToWorldX, tileToWorldXY, tileToWorldY } from '@/services/zone' import { tileToWorldXY } from '@/services/zone'
import type { Zone } from '@/types'
import GmPanel from '@/components/utilities/GmPanel.vue' import GmPanel from '@/components/utilities/GmPanel.vue'
// Phavuer logic // Phavuer logic

View File

@ -1,7 +1,6 @@
<template> <template>
<div class="game-container"> <div class="game-container">
<GmTools /> <GmTools />
<Game class="game" :config="gameConfig" @create="createGame" v-if="!zoneEditorStore.active"> <Game class="game" :config="gameConfig" @create="createGame" v-if="!zoneEditorStore.active">
<Scene name="main" @preload="preloadScene" @create="createScene"> <Scene name="main" @preload="preloadScene" @create="createScene">
<div class="top-ui"> <div class="top-ui">
@ -64,11 +63,22 @@ const createGame = (game: Phaser.Game) => {
} }
const preloadScene = (scene: Phaser.Scene) => { const preloadScene = (scene: Phaser.Scene) => {
/** type Asset = {
* @TODO key: string
* Write logic that downloads all assets from out websocket or http server in base64 format value: string
* Don't forget to check how intensive that operation is with sockets for performance type: 'base64' | 'link'
*/ }
socket.connection.emit('assets:download', {}, (response: Asset[]) => {
response.forEach((asset) => {
if (asset.type === 'base64') {
scene.textures.addBase64(asset.key, asset.value)
}
if (asset.type === 'link') {
scene.load.image(asset.key, asset.value)
}
})
})
scene.load.image('tiles', '/assets/zone/tiles.png') scene.load.image('tiles', '/assets/zone/tiles.png')
scene.load.image('walls', '/assets/zone/walls.png') scene.load.image('walls', '/assets/zone/walls.png')
scene.load.image('wall1', '/assets/zone/wall1.png') scene.load.image('wall1', '/assets/zone/wall1.png')