game rules - object triggers set up
This commit is contained in:
@@ -28,6 +28,7 @@ export default {
|
||||
assignCharacter(e){
|
||||
this.modelValue.go = e.id;
|
||||
this.modelValue.title = e.name
|
||||
this.modelValue.exclude = true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { getBoundingBox, getBoundingBoxCenterPoint, getBoundingBoxMaxLength, centerOrigin } from "@/lib/MeshUtils";
|
||||
import { EventDispatcher } from "three";
|
||||
import { EventDispatcher, SphereGeometry, Mesh, MeshStandardMaterial, BackSide } from "three";
|
||||
|
||||
class GenericObject extends EventDispatcher{
|
||||
constructor(engine, data){
|
||||
@@ -9,6 +9,20 @@ class GenericObject extends EventDispatcher{
|
||||
this.object = centerOrigin(this.source.scene)
|
||||
|
||||
if (!data.exclude){
|
||||
const bckGeometry = new SphereGeometry(getBoundingBoxMaxLength(this.object.userData.bbox)/2,8,8)
|
||||
const bckMesh = new Mesh(bckGeometry, new MeshStandardMaterial({
|
||||
transparent: true,
|
||||
opacity:1, color: 0xaaaaaa,
|
||||
alphaMap: await engine.loadTexture('locked.webp', '/static/textures/'),
|
||||
}))
|
||||
this.object.add(bckMesh)
|
||||
engine.motionQueue.add(
|
||||
{ o: bckMesh, a:{
|
||||
material: { opacity: k=>0.11 + 0.52*Math.sin(k*Math.PI)},
|
||||
rotation: { y: k=>k*Math.PI*2},
|
||||
scale: (k,s)=>s.setScalar(1+0.11*Math.sin(2*k*Math.PI))
|
||||
}, r: true, t: 3 },
|
||||
)
|
||||
engine.clickable.add(this.object, async e=>{
|
||||
this.object._active = !this.object._active;
|
||||
if (engine.dashboard){
|
||||
|
||||
@@ -1,18 +1,16 @@
|
||||
<template>
|
||||
<v-card v-if="modelValue.go">
|
||||
<v-card-item>
|
||||
<v-number-input density="compact" :precision="null" label="Particle width" v-model="modelValue.x"></v-number-input>
|
||||
<v-number-input density="compact" :precision="null" label="Particle height" v-model="modelValue.y"></v-number-input>
|
||||
<div v-if="modelValue.go">
|
||||
<v-number-input density="compact" :precision="null" label="Particle width" v-model="modelValue.x"></v-number-input>
|
||||
<v-number-input density="compact" :precision="null" label="Particle height" v-model="modelValue.y"></v-number-input>
|
||||
|
||||
<v-number-input density="compact" :precision="null" label="Area width" v-model="modelValue.w"></v-number-input>
|
||||
<v-number-input density="compact" :precision="null" label="Area length" v-model="modelValue.h"></v-number-input>
|
||||
<v-number-input density="compact" :precision="null" label="Area width" v-model="modelValue.w"></v-number-input>
|
||||
<v-number-input density="compact" :precision="null" label="Area length" v-model="modelValue.h"></v-number-input>
|
||||
|
||||
<v-number-input density="compact" label="Count" v-model="modelValue.count"></v-number-input>
|
||||
<v-number-input density="compact" label="Count" v-model="modelValue.count"></v-number-input>
|
||||
|
||||
<v-img :src="`/asset/thumb/${modelValue.go}.webp`" />
|
||||
<div class="text-caption text-center">{{ modelValue.title }}</div>
|
||||
</v-card-item>
|
||||
</v-card>
|
||||
<v-img :src="`/asset/thumb/${modelValue.go}.webp`" />
|
||||
<div class="text-caption text-center">{{ modelValue.title }}</div>
|
||||
</div>
|
||||
<asset-selector @select="assignTexture" :type="['Texture']">
|
||||
<template v-slot:activator="props">
|
||||
<v-btn v-bind="props" prepend-icon="mdi-video-box" color="deep-orange-darken-4" block>Choose image object</v-btn>
|
||||
@@ -43,6 +41,7 @@ export default {
|
||||
this.modelValue.count = 1000;
|
||||
this.modelValue.w = 50;
|
||||
this.modelValue.h = 50;
|
||||
this.modelValue.exclude = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user