separate scene and panorama
This commit is contained in:
@@ -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>
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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',
|
||||
|
||||
Reference in New Issue
Block a user