dev
This commit is contained in:
@@ -64,7 +64,7 @@ class GamesManager{
|
|||||||
this.list = async function(query){
|
this.list = async function(query){
|
||||||
return await db.list(collection, {
|
return await db.list(collection, {
|
||||||
query,
|
query,
|
||||||
project: { name:1, id:1, sceneThumb: '$scenes.data.environment'}
|
project: { name:1, id:1, thumb: 1}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,9 +7,9 @@
|
|||||||
<v-btn icon="mdi-plus" variant="text" v-bind="props"></v-btn>
|
<v-btn icon="mdi-plus" variant="text" v-bind="props"></v-btn>
|
||||||
</template>
|
</template>
|
||||||
<v-list>
|
<v-list>
|
||||||
<v-list-item to="/game-objects/add">Нов игрови обект</v-list-item>
|
<v-list-item to="/game-objects/add">{{ l.createGameObject }}</v-list-item>
|
||||||
<v-list-item to="/scenarios/add">Нов сценарий</v-list-item>
|
<v-list-item to="/scenarios/add">{{ l.createScenario }}</v-list-item>
|
||||||
<v-list-item to="/games/add">Нова игра</v-list-item>
|
<v-list-item to="/games/add">{{ l.createGame }}</v-list-item>
|
||||||
</v-list>
|
</v-list>
|
||||||
</v-menu>
|
</v-menu>
|
||||||
</v-app-bar>
|
</v-app-bar>
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
<template>
|
<template>
|
||||||
<div v-show="forRendering">
|
<div v-show="forRendering">
|
||||||
|
<div class="position-relative">
|
||||||
<div ref="target"></div>
|
<div ref="target"></div>
|
||||||
|
<div class="renderer-gizmo"></div>
|
||||||
|
</div>
|
||||||
<v-slide-group show-arrows>
|
<v-slide-group show-arrows>
|
||||||
<v-slide-group-item v-for="(a, i) in animations" :key="i" v-slot="{ isSelected }">
|
<v-slide-group-item v-for="(a, i) in animations" :key="i" v-slot="{ isSelected }">
|
||||||
<v-btn :color="isSelected ? 'primary' : undefined" class="ma-2"
|
<v-btn :color="isSelected ? 'primary' : undefined" class="ma-2"
|
||||||
@@ -79,8 +82,8 @@ export default{
|
|||||||
});
|
});
|
||||||
//console.log(bb)
|
//console.log(bb)
|
||||||
gameEngine.camera.position.set(bb.max.x, bb.max.y, bb.max.z);
|
gameEngine.camera.position.set(bb.max.x, bb.max.y, bb.max.z);
|
||||||
gameEngine.controls.target.set((bb.max.x + bb.min.x) / 2, (bb.max.y + bb.min.y) / 2, (bb.max.z + bb.min.z) / 2)
|
gameEngine.orbitControls.target.set((bb.max.x + bb.min.x) / 2, (bb.max.y + bb.min.y) / 2, (bb.max.z + bb.min.z) / 2)
|
||||||
gameEngine.controls.update();
|
gameEngine.orbitControls.update();
|
||||||
gameEngine.scene.add(gltf.scene);
|
gameEngine.scene.add(gltf.scene);
|
||||||
//gameEngine.scene.add(gameEngine.light);
|
//gameEngine.scene.add(gameEngine.light);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -104,6 +104,8 @@ export default {
|
|||||||
currentObject(n){
|
currentObject(n){
|
||||||
gameEngine.transformControls.attach(n.__o);
|
gameEngine.transformControls.attach(n.__o);
|
||||||
gameEngine.gizmo.target = n.__o.position;
|
gameEngine.gizmo.target = n.__o.position;
|
||||||
|
//gameEngine.camera.lookAt(n.__o.position)
|
||||||
|
gameEngine.camera.updateProjectionMatrix()
|
||||||
},
|
},
|
||||||
renderType(v){
|
renderType(v){
|
||||||
gameEngine.renderType = v;
|
gameEngine.renderType = v;
|
||||||
|
|||||||
@@ -150,7 +150,7 @@ class GameEngine {
|
|||||||
}
|
}
|
||||||
|
|
||||||
stop(){
|
stop(){
|
||||||
this.renderer.setAnimationLoop(null);
|
this.renderer?.setAnimationLoop(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
getMouseVector(mouseEvent, domElement){
|
getMouseVector(mouseEvent, domElement){
|
||||||
|
|||||||
@@ -46,6 +46,13 @@ export default {
|
|||||||
}
|
}
|
||||||
this.scenarios = (await this.$api.scenario.search()).data.data;
|
this.scenarios = (await this.$api.scenario.search()).data.data;
|
||||||
},
|
},
|
||||||
|
watch:{
|
||||||
|
'object.scenario'(v){
|
||||||
|
if (v){
|
||||||
|
this.object.thumb = this.scenarios?.find(s=>s.id == v)?.sceneThumb?.[0];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
computed: {
|
computed: {
|
||||||
id() {
|
id() {
|
||||||
return this.$route.params?.id;
|
return this.$route.params?.id;
|
||||||
@@ -56,7 +63,8 @@ export default {
|
|||||||
this.loading = true;
|
this.loading = true;
|
||||||
try {
|
try {
|
||||||
let result = await this.$api.game.save(this.object);
|
let result = await this.$api.game.save(this.object);
|
||||||
Object.assign(this.object, result.data.object);
|
//Object.assign(this.object, result.data.object);
|
||||||
|
this.object.id = result.data.object.id;
|
||||||
if (this.id == 'add') {
|
if (this.id == 'add') {
|
||||||
this.$router.replace({ params: { id: this.object.id } });
|
this.$router.replace({ params: { id: this.object.id } });
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<v-row>
|
<v-row>
|
||||||
<v-col v-for="(v, i) in items" :key="i" cols="12" xs="6" sm="4" md="3" xl="2" class="position-relative">
|
<v-col v-for="(v, i) in items" :key="i" cols="12" xs="6" sm="4" md="3" xl="2" class="position-relative">
|
||||||
<router-link :to="`/games/${v.id}`">
|
<router-link :to="`/games/${v.id}`">
|
||||||
<v-img :src="`/asset/thumb/${v.thumb?.[0]}.webp`"></v-img>
|
<v-img :src="`/asset/thumb/${v.thumb}.webp`"></v-img>
|
||||||
</router-link>
|
</router-link>
|
||||||
<div class="d-flex">
|
<div class="d-flex">
|
||||||
<span class="flex-grow-1">{{ v.name }}</span>
|
<span class="flex-grow-1">{{ v.name }}</span>
|
||||||
|
|||||||
Reference in New Issue
Block a user