This commit is contained in:
2025-03-21 11:57:18 +02:00
parent 14f97924d3
commit 43895ea0fc
7 changed files with 23 additions and 10 deletions
+1 -1
View File
@@ -64,7 +64,7 @@ class GamesManager{
this.list = async function(query){
return await db.list(collection, {
query,
project: { name:1, id:1, sceneThumb: '$scenes.data.environment'}
project: { name:1, id:1, thumb: 1}
});
}
+3 -3
View File
@@ -7,9 +7,9 @@
<v-btn icon="mdi-plus" variant="text" v-bind="props"></v-btn>
</template>
<v-list>
<v-list-item to="/game-objects/add">Нов игрови обект</v-list-item>
<v-list-item to="/scenarios/add">Нов сценарий</v-list-item>
<v-list-item to="/games/add">Нова игра</v-list-item>
<v-list-item to="/game-objects/add">{{ l.createGameObject }}</v-list-item>
<v-list-item to="/scenarios/add">{{ l.createScenario }}</v-list-item>
<v-list-item to="/games/add">{{ l.createGame }}</v-list-item>
</v-list>
</v-menu>
</v-app-bar>
@@ -1,6 +1,9 @@
<template>
<div v-show="forRendering">
<div class="position-relative">
<div ref="target"></div>
<div class="renderer-gizmo"></div>
</div>
<v-slide-group show-arrows>
<v-slide-group-item v-for="(a, i) in animations" :key="i" v-slot="{ isSelected }">
<v-btn :color="isSelected ? 'primary' : undefined" class="ma-2"
@@ -79,8 +82,8 @@ export default{
});
//console.log(bb)
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.controls.update();
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.orbitControls.update();
gameEngine.scene.add(gltf.scene);
//gameEngine.scene.add(gameEngine.light);
}
@@ -104,6 +104,8 @@ export default {
currentObject(n){
gameEngine.transformControls.attach(n.__o);
gameEngine.gizmo.target = n.__o.position;
//gameEngine.camera.lookAt(n.__o.position)
gameEngine.camera.updateProjectionMatrix()
},
renderType(v){
gameEngine.renderType = v;
+1 -1
View File
@@ -150,7 +150,7 @@ class GameEngine {
}
stop(){
this.renderer.setAnimationLoop(null);
this.renderer?.setAnimationLoop(null);
}
getMouseVector(mouseEvent, domElement){
+9 -1
View File
@@ -46,6 +46,13 @@ export default {
}
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: {
id() {
return this.$route.params?.id;
@@ -56,7 +63,8 @@ export default {
this.loading = true;
try {
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') {
this.$router.replace({ params: { id: this.object.id } });
}
+1 -1
View File
@@ -3,7 +3,7 @@
<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">
<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>
<div class="d-flex">
<span class="flex-grow-1">{{ v.name }}</span>