From fa5acca14374c2748bb49792b33e7d7e178abb12 Mon Sep 17 00:00:00 2001 From: Dennis Postma Date: Thu, 4 Jul 2024 14:56:32 +0200 Subject: [PATCH] Hot reload after adding new objects --- .../assetManager/partials/TileList.vue | 1 + .../utilities/zoneEditor/ZoneEditor.vue | 37 ++++++++++--------- 2 files changed, 21 insertions(+), 17 deletions(-) diff --git a/src/components/utilities/assetManager/partials/TileList.vue b/src/components/utilities/assetManager/partials/TileList.vue index a25d4d7..96c927e 100644 --- a/src/components/utilities/assetManager/partials/TileList.vue +++ b/src/components/utilities/assetManager/partials/TileList.vue @@ -36,6 +36,7 @@ const handleFileUpload = (e: Event) => { } assetStore.fetchAssets() + socket.connection.emit('gm:tile:list', {}, (response: string[]) => { assetManagerStore.setTileList(response) }) diff --git a/src/components/utilities/zoneEditor/ZoneEditor.vue b/src/components/utilities/zoneEditor/ZoneEditor.vue index 7e62a02..0747459 100644 --- a/src/components/utilities/zoneEditor/ZoneEditor.vue +++ b/src/components/utilities/zoneEditor/ZoneEditor.vue @@ -144,24 +144,27 @@ function save() { }) } -onMounted(() => { - watch( - () => assetStore.assets, - () => { - toRaw(assetStore.assets).forEach((asset) => { - if (asset.type === 'link') { - scene.load.image(asset.key, config.server_endpoint + '/assets' + asset.value + '.png') - } - if (asset.type === 'base64') { - scene.textures.addBase64(asset.key, asset.value) - } - }) +watch( + () => assetStore.assets, + () => { + console.log('re-loading assets', assetStore.assets) + toRaw(assetStore.assets).forEach((asset) => { + if (asset.type === 'link') { + scene.load.image(asset.key, config.server_endpoint + '/assets' + asset.value + '.png') + } + if (asset.type === 'base64') { + scene.textures.addBase64(asset.key, asset.value) + } + }) - scene.load.start() - }, - { deep: true } - ) -}) + scene.load.start() + + scene.load.once('complete', () => { + console.log('assets re-loaded') + }) + }, + { deep: true } +) onBeforeMount(() => { exampleTilesArray.forEach((row, y) => row.forEach((tile, x) => placeTile(zone, tiles, x, y, 'blank_tile')))