separate scene and panorama
This commit is contained in:
@@ -9,9 +9,15 @@
|
|||||||
</g>
|
</g>
|
||||||
</teleport>
|
</teleport>
|
||||||
<v-card :title="modelValue.title" v-if="selected" class="mx-2" variant="text">
|
<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">
|
<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>
|
</template>
|
||||||
</asset-selector>
|
</asset-selector>
|
||||||
|
|
||||||
@@ -63,10 +69,13 @@ export default {
|
|||||||
},
|
},
|
||||||
assignEnvironment(e){
|
assignEnvironment(e){
|
||||||
this.modelValue.environment = e.id;
|
this.modelValue.environment = e.id;
|
||||||
|
},
|
||||||
|
assignScene(e){
|
||||||
|
this.modelValue.scene = e.id;
|
||||||
if (this.modelValue.id == this.modelValue.title){
|
if (this.modelValue.id == this.modelValue.title){
|
||||||
this.modelValue.title = e.name
|
this.modelValue.title = e.name
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
@@ -97,7 +97,10 @@ export default {
|
|||||||
|
|
||||||
async expandScenarioData(scene){
|
async expandScenarioData(scene){
|
||||||
const promises = [];
|
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 || []) {
|
for (let i of scene.data.items || []) {
|
||||||
if (i.data.io){
|
if (i.data.io){
|
||||||
if (i.data.io.go){
|
if (i.data.io.go){
|
||||||
@@ -121,10 +124,11 @@ export default {
|
|||||||
await this.expandScenarioData(scene);
|
await this.expandScenarioData(scene);
|
||||||
target.objects = target.objects || {};
|
target.objects = target.objects || {};
|
||||||
let l = 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}`);
|
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);
|
this.setObjectAttributes(l, this.scene.data, env, 100);
|
||||||
gameEngine.activeObjects.add(env.scene);
|
gameEngine.activeObjects.add(env.scene);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ export default {
|
|||||||
value: 'panorama2d',
|
value: 'panorama2d',
|
||||||
icon: 'panorama-variant-outline',
|
icon: 'panorama-variant-outline',
|
||||||
render: true,
|
render: true,
|
||||||
type: 'Scene',
|
type: 'Panorama',
|
||||||
color: 'light-blue-darken-4'
|
color: 'light-blue-darken-4'
|
||||||
}, {
|
}, {
|
||||||
value: 'environment3d',
|
value: 'environment3d',
|
||||||
|
|||||||
Reference in New Issue
Block a user