separate scene and panorama

This commit is contained in:
2025-11-04 08:15:59 +02:00
parent 96012fda27
commit 429ab07db5
3 changed files with 21 additions and 8 deletions
+12 -3
View File
@@ -9,9 +9,15 @@
</g>
</teleport>
<v-card :title="modelValue.title" v-if="selected" class="mx-2" variant="text">
<asset-selector @select="assignEnvironment" :type="['Scene']">
<asset-selector @select="assignEnvironment" :type="['Panorama']">
<template v-slot:activator="props">
<v-btn v-bind="props" prepend-icon="mdi-panorama-outline" block color="success" class="py-4">Choose environment</v-btn>
<v-btn v-bind="props" prepend-icon="mdi-panorama-sphere-outline" block color="light-blue-darken-4">Choose environment</v-btn>
</template>
</asset-selector>
<asset-selector @select="assignScene" :type="['Scene']">
<template v-slot:activator="props">
<v-btn v-bind="props" prepend-icon="mdi-panorama-outline" block color="orange-darken-3" class="my-4">Choose scene</v-btn>
</template>
</asset-selector>
@@ -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
}
}
},
}
}
</script>
+8 -4
View File
@@ -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);
}
+1 -1
View File
@@ -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',