From 429ab07db54a511d7645fb124880f1e663570b7d Mon Sep 17 00:00:00 2001 From: goynov Date: Tue, 4 Nov 2025 08:15:59 +0200 Subject: [PATCH] separate scene and panorama --- src/components/SceneDesigner/Scene.vue | 15 ++++++++++++--- src/mixins/GameEnvironmentMixin.js | 12 ++++++++---- src/plugins/params.js | 2 +- 3 files changed, 21 insertions(+), 8 deletions(-) diff --git a/src/components/SceneDesigner/Scene.vue b/src/components/SceneDesigner/Scene.vue index b26fe56..fda73ea 100644 --- a/src/components/SceneDesigner/Scene.vue +++ b/src/components/SceneDesigner/Scene.vue @@ -9,9 +9,15 @@ - + + + + + @@ -63,10 +69,13 @@ export default { }, assignEnvironment(e){ this.modelValue.environment = e.id; + }, + assignScene(e){ + this.modelValue.scene = e.id; if (this.modelValue.id == this.modelValue.title){ this.modelValue.title = e.name } - } + }, } } \ No newline at end of file diff --git a/src/mixins/GameEnvironmentMixin.js b/src/mixins/GameEnvironmentMixin.js index 344312f..d3e79a3 100644 --- a/src/mixins/GameEnvironmentMixin.js +++ b/src/mixins/GameEnvironmentMixin.js @@ -97,7 +97,10 @@ export default { async expandScenarioData(scene){ const promises = []; - promises.push(this.$api.gameObject.load(scene.data.environment).then(r=>scene.data.$environment = r.data)) + ['environment', 'scene'].filter(e=>scene.data[e]).forEach(e=>{ + promises.push(this.$api.gameObject.load(scene.data[e]).then(r=>scene.data['$'+e] = r.data)) + }) + for (let i of scene.data.items || []) { if (i.data.io){ if (i.data.io.go){ @@ -121,10 +124,11 @@ export default { await this.expandScenarioData(scene); target.objects = target.objects || {}; let l = target.objects; - if (this.scene.data.$environment.type == 'panorama2d'){ + if (this.scene.data.$environment){ await gameEngine.loadPanorama(`/asset/default/${this.scene.data.$environment.asset.name}`); - }else{ - let env = await gameEngine.load(`/asset/default/${this.scene.data.$environment.asset.name}`); + } + if (this.scene.data.$scene){ + let env = await gameEngine.load(`/asset/default/${this.scene.data.$scene.asset.name}`); this.setObjectAttributes(l, this.scene.data, env, 100); gameEngine.activeObjects.add(env.scene); } diff --git a/src/plugins/params.js b/src/plugins/params.js index 641d670..a587d87 100644 --- a/src/plugins/params.js +++ b/src/plugins/params.js @@ -5,7 +5,7 @@ export default { value: 'panorama2d', icon: 'panorama-variant-outline', render: true, - type: 'Scene', + type: 'Panorama', color: 'light-blue-darken-4' }, { value: 'environment3d',