This commit is contained in:
syuilo 2026-05-25 12:13:16 +09:00
commit a201f72c8a
33 changed files with 150 additions and 119 deletions

View file

@ -44,8 +44,9 @@ export const lowPartitionBar = defineObject({
const applySize = () => {
for (const mesh of model.root.getChildMeshes()) {
if (mesh.morphTargetManager != null && mesh.morphTargetManager.getTargetByName('W') != null) {
mesh.morphTargetManager.getTargetByName('W').influence = options.width;
const widthTarget = mesh.morphTargetManager?.getTargetByName('W');
if (widthTarget != null) {
widthTarget.influence = options.width;
}
}
model.updated();
@ -54,7 +55,7 @@ export const lowPartitionBar = defineObject({
applySize();
return {
onOptionsUpdated: ([k, v]) => {
onOptionsUpdated: ([k]) => {
switch (k) {
case 'bodyMat': applyBodyMat(); break;
case 'width': applySize(); break;

View file

@ -36,7 +36,7 @@ export const piano = defineObject({
applyBodyMat();
return {
onOptionsUpdated: ([k, v]) => {
onOptionsUpdated: () => {
applyBodyMat();
},
interactions: {},

View file

@ -37,7 +37,7 @@ export const sofa = defineObject({
applyBodyMat();
return {
onOptionsUpdated: ([k, v]) => {
onOptionsUpdated: () => {
applyBodyMat();
},
interactions: {},

View file

@ -5,19 +5,20 @@
import * as BABYLON from '@babylonjs/core';
import { defineObject } from '../object.js';
import { i18n } from '@/i18n.js';
export const speaker = defineObject({
id: 'speaker',
name: 'Speaker',
name: i18n.ts._miRoom._objects.speaker,
options: {
schema: {
outerMat: {
type: 'material',
label: 'Outer Material',
label: i18n.ts._miRoom._objects._speaker.outerMat,
},
innerMat: {
type: 'material',
label: 'Inner Material',
label: i18n.ts._miRoom._objects._speaker.innerMat,
},
},
default: {

View file

@ -5,19 +5,20 @@
import * as BABYLON from '@babylonjs/core';
import { defineObject } from '../object.js';
import { i18n } from '@/i18n.js';
export const speakerStand = defineObject({
id: 'speakerStand',
name: 'speakerStand',
name: i18n.ts._miRoom._objects.speakerStand,
options: {
schema: {
bodyMat: {
type: 'material',
label: 'Body material',
label: i18n.ts._miRoom._objects._speakerStand.bodyMat,
},
height: {
type: 'range',
label: 'height',
label: i18n.ts._miRoom._objects._speakerStand.height,
min: 0,
max: 1,
step: 0.01,

View file

@ -7,30 +7,31 @@ import * as BABYLON from '@babylonjs/core';
import { defineObject } from '../object.js';
import { getLightRangeFactorByGraphicsQuality } from '../utility.js';
import { cm, remap, WORLD_SCALE } from '@/world/utility.js';
import { i18n } from '@/i18n.js';
export const spotLight = defineObject({
id: 'spotLight',
name: 'spotLight',
name: i18n.ts._miRoom._objects.spotLight,
options: {
schema: {
bodyMat: {
type: 'material',
label: 'Body material',
label: i18n.ts._miRoom._objects._spotLight.bodyMat,
},
light: {
type: 'light',
label: 'Light',
label: i18n.ts._miRoom._objects._spotLight.light,
},
angleV: {
type: 'range',
label: 'Vertical angle',
label: i18n.ts._miRoom._objects._spotLight.angleV,
min: 0,
max: 1,
step: 0.01,
},
angleH: {
type: 'range',
label: 'Horizontal angle',
label: i18n.ts._miRoom._objects._spotLight.angleH,
min: 0,
max: 1,
step: 0.01,

View file

@ -4,10 +4,11 @@
*/
import { defineObject } from '../object.js';
import { i18n } from '@/i18n.js';
export const sprayer = defineObject({
id: 'sprayer',
name: '霧吹き',
name: i18n.ts._miRoom._objects.sprayer,
options: {
schema: {},
default: {},

View file

@ -5,19 +5,20 @@
import * as BABYLON from '@babylonjs/core';
import { defineObject } from '../object.js';
import { i18n } from '@/i18n.js';
export const stanchionPole = defineObject({
id: 'stanchionPole',
name: 'stanchionPole',
name: i18n.ts._miRoom._objects.stanchionPole,
options: {
schema: {
bodyMat: {
type: 'material',
label: 'Body material',
label: i18n.ts._miRoom._objects._stanchionPole.bodyMat,
},
ropeMat: {
type: 'material',
label: 'Rope material',
label: i18n.ts._miRoom._objects._stanchionPole.ropeMat,
},
},
default: {

View file

@ -6,111 +6,112 @@
import * as BABYLON from '@babylonjs/core';
import { defineObject } from '../object.js';
import { cm, remap } from '@/world/utility.js';
import { i18n } from '@/i18n.js';
export const steelRack = defineObject({
id: 'steelRack',
name: 'steelRack',
name: i18n.ts._miRoom._objects.steelRack,
options: {
schema: {
shelfMat: {
type: 'material',
label: 'Shelf material',
label: i18n.ts._miRoom._objects._steelRack.shelfMat,
},
poleMat: {
type: 'material',
label: 'Pole material',
label: i18n.ts._miRoom._objects._steelRack.poleMat,
},
widthAndDepthVariation: {
type: 'enum',
label: 'W x D',
label: i18n.ts._miRoom._objects._steelRack.widthAndDepthVariation,
enum: [{
label: '60 x 35',
label: i18n.ts._miRoom._objects._steelRack['widthAndDepthVariation:60-35'],
value: '60-35',
}, {
label: '90 x 35',
label: i18n.ts._miRoom._objects._steelRack['widthAndDepthVariation:90-35'],
value: '90-35',
}],
},
height: {
type: 'range',
label: 'Height',
label: i18n.ts._miRoom._objects._steelRack.height,
min: 1,
max: 7,
step: 1,
},
numberOfShelfs: {
type: 'range',
label: '# of shelfs',
label: i18n.ts._miRoom._objects._steelRack.numberOfShelfs,
min: 2,
max: 10,
step: 1,
},
shelf1Position: {
type: 'range',
label: 'Shelf1 position',
label: i18n.ts._miRoom._objects._steelRack.shelf1Position,
min: 0,
max: 1,
step: 0.01,
},
shelf2Position: {
type: 'range',
label: 'Shelf2 position',
label: i18n.ts._miRoom._objects._steelRack.shelf2Position,
min: 0,
max: 1,
step: 0.01,
},
shelf3Position: {
type: 'range',
label: 'Shelf3 position',
label: i18n.ts._miRoom._objects._steelRack.shelf3Position,
min: 0,
max: 1,
step: 0.01,
},
shelf4Position: {
type: 'range',
label: 'Shelf4 position',
label: i18n.ts._miRoom._objects._steelRack.shelf4Position,
min: 0,
max: 1,
step: 0.01,
},
shelf5Position: {
type: 'range',
label: 'Shelf5 position',
label: i18n.ts._miRoom._objects._steelRack.shelf5Position,
min: 0,
max: 1,
step: 0.01,
},
shelf6Position: {
type: 'range',
label: 'Shelf6 position',
label: i18n.ts._miRoom._objects._steelRack.shelf6Position,
min: 0,
max: 1,
step: 0.01,
},
shelf7Position: {
type: 'range',
label: 'Shelf7 position',
label: i18n.ts._miRoom._objects._steelRack.shelf7Position,
min: 0,
max: 1,
step: 0.01,
},
shelf8Position: {
type: 'range',
label: 'Shelf8 position',
label: i18n.ts._miRoom._objects._steelRack.shelf8Position,
min: 0,
max: 1,
step: 0.01,
},
shelf9Position: {
type: 'range',
label: 'Shelf9 position',
label: i18n.ts._miRoom._objects._steelRack.shelf9Position,
min: 0,
max: 1,
step: 0.01,
},
shelf10Position: {
type: 'range',
label: 'Shelf10 position',
label: i18n.ts._miRoom._objects._steelRack.shelf10Position,
min: 0,
max: 1,
step: 0.01,

View file

@ -4,10 +4,11 @@
*/
import { defineObject } from '../object.js';
import { i18n } from '@/i18n.js';
export const stormGlass = defineObject({
id: 'stormGlass',
name: 'stormGlass',
name: i18n.ts._miRoom._objects.stormGlass,
options: {
schema: {},
default: {},

View file

@ -4,10 +4,11 @@
*/
import { defineObject } from '../object.js';
import { i18n } from '@/i18n.js';
export const tableSalt = defineObject({
id: 'tableSalt',
name: 'tableSalt',
name: i18n.ts._miRoom._objects.tableSalt,
options: {
schema: {},
default: {},

View file

@ -4,10 +4,11 @@
*/
import { defineObject } from '../object.js';
import { i18n } from '@/i18n.js';
export const tabletopCalendar = defineObject({
id: 'tabletopCalendar',
name: 'Tabletop Calendar',
name: i18n.ts._miRoom._objects.tabletopCalendar,
options: {
schema: {},
default: {},

View file

@ -6,19 +6,20 @@
import * as BABYLON from '@babylonjs/core';
import { defineObject } from '../object.js';
import { cm, get7segMeshesOfCurrentTime, WORLD_SCALE } from '@/world/utility.js';
import { i18n } from '@/i18n.js';
export const tabletopDigitalClock = defineObject({
id: 'tabletopDigitalClock',
name: 'Tabletop Digital Clock',
name: i18n.ts._miRoom._objects.tabletopDigitalClock,
options: {
schema: {
bodyMat: {
type: 'material',
label: 'Body Material',
label: i18n.ts._miRoom._objects._tabletopDigitalClock.bodyMat,
},
lcdColor: {
type: 'color',
label: 'LCD Color',
label: i18n.ts._miRoom._objects._tabletopDigitalClock.lcdColor,
},
},
default: {

View file

@ -6,15 +6,16 @@
import * as BABYLON from '@babylonjs/core';
import { createTextureManager, defineObject } from '../object.js';
import { createPlaneUvMapper } from '../../utility.js';
import { i18n } from '@/i18n.js';
export const tabletopFlag = defineObject({
id: 'tabletopFlag',
name: 'Tabletop flag',
name: i18n.ts._miRoom._objects.tabletopFlag,
options: {
schema: {
image: {
type: 'image',
label: 'Image',
label: i18n.ts._miRoom._objects._tabletopFlag.image,
presets: [],
},
},

View file

@ -6,6 +6,7 @@
import * as BABYLON from '@babylonjs/core';
import { createTextureManager, defineObject } from '../object.js';
import { createPlaneUvMapper, getPlaneUvIndexes } from '../../utility.js';
import { i18n } from '@/i18n.js';
const remap = (value: number, fromMin: number, fromMax: number, toMin: number, toMax: number) => {
return toMin + ((value - fromMin) / (fromMax - fromMin)) * (toMax - toMin);
@ -13,26 +14,26 @@ const remap = (value: number, fromMin: number, fromMax: number, toMin: number, t
export const tabletopGlassPictureFrame = defineObject({
id: 'tabletopGlassPictureFrame',
name: 'tabletopGlassPictureFrame',
name: i18n.ts._miRoom._objects.tabletopGlassPictureFrame,
options: {
schema: {
width: {
type: 'range',
label: 'Width',
label: i18n.ts._miRoom._objects._tabletopGlassPictureFrame.width,
min: 0,
max: 1,
step: 0.01,
},
height: {
type: 'range',
label: 'Height',
label: i18n.ts._miRoom._objects._tabletopGlassPictureFrame.height,
min: 0,
max: 1,
step: 0.01,
},
image: {
type: 'image',
label: 'Image',
label: i18n.ts._miRoom._objects._tabletopGlassPictureFrame.image,
presets: [],
},
},

View file

@ -5,37 +5,38 @@
import * as BABYLON from '@babylonjs/core';
import { defineObject } from '../object.js';
import { i18n } from '@/i18n.js';
export const tabletopIronFrameStand = defineObject({
id: 'tabletopIronFrameStand',
name: 'tabletopIronFrameStand',
name: i18n.ts._miRoom._objects.tabletopIronFrameStand,
options: {
schema: {
frameMat: {
type: 'material',
label: 'Frame material',
label: i18n.ts._miRoom._objects._tabletopIronFrameStand.frameMat,
},
boardMat: {
type: 'material',
label: 'Board material',
label: i18n.ts._miRoom._objects._tabletopIronFrameStand.boardMat,
},
width: {
type: 'range',
label: 'Width',
label: i18n.ts._miRoom._objects._tabletopIronFrameStand.width,
min: 0,
max: 1,
step: 0.01,
},
depth: {
type: 'range',
label: 'Depth',
label: i18n.ts._miRoom._objects._tabletopIronFrameStand.depth,
min: 0,
max: 1,
step: 0.01,
},
height: {
type: 'range',
label: 'Height',
label: i18n.ts._miRoom._objects._tabletopIronFrameStand.height,
min: 0,
max: 1,
step: 0.01,

View file

@ -6,26 +6,27 @@
import * as BABYLON from '@babylonjs/core';
import { createTextureManager, defineObject } from '../object.js';
import { createPlaneUvMapper, normalizeUvToSquare } from '../../utility.js';
import { i18n } from '@/i18n.js';
export const tabletopLcdButtonsController = defineObject({
id: 'tabletopLcdButtonsController',
name: 'tabletopLcdButtonsController',
name: i18n.ts._miRoom._objects.tabletopLcdButtonsController,
options: {
schema: {
bodyMat: {
type: 'material',
label: 'Body material',
label: i18n.ts._miRoom._objects._tabletopLcdButtonsController.bodyMat,
},
screenBrightness: {
type: 'range',
label: 'Screen brightness',
label: i18n.ts._miRoom._objects._tabletopLcdButtonsController.screenBrightness,
min: 0,
max: 1,
step: 0.01,
},
image: {
type: 'image',
label: 'Image',
label: i18n.ts._miRoom._objects._tabletopLcdButtonsController.image,
presets: [],
},
},

View file

@ -6,63 +6,64 @@
import * as BABYLON from '@babylonjs/core';
import { createTextureManager, defineObject } from '../object.js';
import { createPlaneUvMapper } from '../../utility.js';
import { i18n } from '@/i18n.js';
// NOTE: シェイプキーのnormalのエクスポートは無効にしないとmatを大きくしたときに面のレンダリングがグリッチする
export const tabletopPictureFrame = defineObject({
id: 'tabletopPictureFrame',
name: 'Tabletop simple picture frame',
name: i18n.ts._miRoom._objects.tabletopPictureFrame,
options: {
schema: {
frameMat: {
type: 'material',
label: 'Frame material',
label: i18n.ts._miRoom._objects._tabletopPictureFrame.frameMat,
},
width: {
type: 'range',
label: 'Width',
label: i18n.ts._miRoom._objects._tabletopPictureFrame.width,
min: 0,
max: 1,
step: 0.01,
},
height: {
type: 'range',
label: 'Height',
label: i18n.ts._miRoom._objects._tabletopPictureFrame.height,
min: 0,
max: 1,
step: 0.01,
},
frameThickness: {
type: 'range',
label: 'Frame thickness',
label: i18n.ts._miRoom._objects._tabletopPictureFrame.frameThickness,
min: 0,
max: 1,
step: 0.01,
},
depth: {
type: 'range',
label: 'Depth',
label: i18n.ts._miRoom._objects._tabletopPictureFrame.depth,
min: 0,
max: 1,
step: 0.01,
},
matHThickness: {
type: 'range',
label: 'Mat horizontal thickness',
label: i18n.ts._miRoom._objects._tabletopPictureFrame.matHThickness,
min: 0,
max: 1,
step: 0.01,
},
matVThickness: {
type: 'range',
label: 'Mat vertical thickness',
label: i18n.ts._miRoom._objects._tabletopPictureFrame.matVThickness,
min: 0,
max: 1,
step: 0.01,
},
image: {
type: 'image',
label: 'Image',
label: i18n.ts._miRoom._objects._tabletopPictureFrame.image,
presets: [],
},
},

View file

@ -6,6 +6,7 @@
import * as BABYLON from '@babylonjs/core';
import { createTextureManager, defineObject } from '../object.js';
import { createPlaneUvMapper, getPlaneUvIndexes } from '../../utility.js';
import { i18n } from '@/i18n.js';
const remap = (value: number, fromMin: number, fromMax: number, toMin: number, toMax: number) => {
return toMin + ((value - fromMin) / (fromMax - fromMin)) * (toMax - toMin);
@ -13,26 +14,26 @@ const remap = (value: number, fromMin: number, fromMax: number, toMin: number, t
export const tapestry = defineObject({
id: 'tapestry',
name: 'Tapestry',
name: i18n.ts._miRoom._objects.tapestry,
options: {
schema: {
width: {
type: 'range',
label: 'Width',
label: i18n.ts._miRoom._objects._tapestry.width,
min: 0,
max: 1,
step: 0.01,
},
height: {
type: 'range',
label: 'Height',
label: i18n.ts._miRoom._objects._tapestry.height,
min: 0,
max: 1,
step: 0.01,
},
image: {
type: 'image',
label: 'Image',
label: i18n.ts._miRoom._objects._tapestry.image,
presets: [],
},
},

View file

@ -4,10 +4,11 @@
*/
import { defineObject } from '../object.js';
import { i18n } from '@/i18n.js';
export const tetrapod = defineObject({
id: 'tetrapod',
name: '波消ブロック',
name: i18n.ts._miRoom._objects.tetrapod,
options: {
schema: {},
default: {},

View file

@ -7,19 +7,20 @@ import * as BABYLON from '@babylonjs/core';
import { defineObject } from '../object.js';
import { getLightRangeFactorByGraphicsQuality, initTv } from '../utility.js';
import { cm, WORLD_SCALE } from '@/world/utility.js';
import { i18n } from '@/i18n.js';
export const tv = defineObject({
id: 'tv',
name: 'TV',
name: i18n.ts._miRoom._objects.tv,
options: {
schema: {
bodyMat: {
type: 'material',
label: 'Body material',
label: i18n.ts._miRoom._objects._tv.bodyMat,
},
screenBrightness: {
type: 'range',
label: 'Screen brightness',
label: i18n.ts._miRoom._objects._tv.screenBrightness,
min: 0,
max: 1,
step: 0.01,

View file

@ -4,10 +4,11 @@
*/
import { defineObject } from '../object.js';
import { i18n } from '@/i18n.js';
export const twistedCubeObjet = defineObject({
id: 'twistedCubeObjet',
name: 'twistedCubeObjet',
name: i18n.ts._miRoom._objects.twistedCubeObjet,
options: {
schema: {},
default: {},

View file

@ -4,10 +4,11 @@
*/
import { defineObject } from '../object.js';
import { i18n } from '@/i18n.js';
export const usedTissue = defineObject({
id: 'usedTissue',
name: 'usedTissue',
name: i18n.ts._miRoom._objects.usedTissue,
options: {
schema: {},
default: {},

View file

@ -6,29 +6,30 @@
import * as BABYLON from '@babylonjs/core';
import { createTextureManager, defineObject } from '../object.js';
import { createPlaneUvMapper, getPlaneUvIndexes } from '../../utility.js';
import { i18n } from '@/i18n.js';
export const wallCanvas = defineObject({
id: 'wallCanvas',
name: 'wallCanvas',
name: i18n.ts._miRoom._objects.wallCanvas,
options: {
schema: {
width: {
type: 'range',
label: 'Width',
label: i18n.ts._miRoom._objects._wallCanvas.width,
min: 0,
max: 1,
step: 0.01,
},
height: {
type: 'range',
label: 'Height',
label: i18n.ts._miRoom._objects._wallCanvas.height,
min: 0,
max: 1,
step: 0.01,
},
image: {
type: 'image',
label: 'Image',
label: i18n.ts._miRoom._objects._wallCanvas.image,
presets: [],
},
},

View file

@ -5,15 +5,16 @@
import * as BABYLON from '@babylonjs/core';
import { defineObject } from '../object.js';
import { i18n } from '@/i18n.js';
export const wallClock = defineObject({
id: 'wallClock',
name: 'Wall Clock',
name: i18n.ts._miRoom._objects.wallClock,
options: {
schema: {
frameMat: {
type: 'material',
label: 'Frame material',
label: i18n.ts._miRoom._objects._wallClock.frameMat,
},
},
default: {

View file

@ -6,6 +6,7 @@
import * as BABYLON from '@babylonjs/core';
import { createTextureManager, defineObject } from '../object.js';
import { createPlaneUvMapper, getPlaneUvIndexes } from '../../utility.js';
import { i18n } from '@/i18n.js';
const remap = (value: number, fromMin: number, fromMax: number, toMin: number, toMax: number) => {
return toMin + ((value - fromMin) / (fromMax - fromMin)) * (toMax - toMin);
@ -13,26 +14,26 @@ const remap = (value: number, fromMin: number, fromMax: number, toMin: number, t
export const wallGlassPictureFrame = defineObject({
id: 'wallGlassPictureFrame',
name: 'wallGlassPictureFrame',
name: i18n.ts._miRoom._objects.wallGlassPictureFrame,
options: {
schema: {
width: {
type: 'range',
label: 'Width',
label: i18n.ts._miRoom._objects._wallGlassPictureFrame.width,
min: 0,
max: 1,
step: 0.01,
},
height: {
type: 'range',
label: 'Height',
label: i18n.ts._miRoom._objects._wallGlassPictureFrame.height,
min: 0,
max: 1,
step: 0.01,
},
image: {
type: 'image',
label: 'Image',
label: i18n.ts._miRoom._objects._wallGlassPictureFrame.image,
presets: [],
},
},

View file

@ -5,36 +5,37 @@
import * as BABYLON from '@babylonjs/core';
import { defineObject } from '../object.js';
import { i18n } from '@/i18n.js';
export const wallMirror = defineObject({
id: 'wallMirror',
name: 'wallMirror',
name: i18n.ts._miRoom._objects.wallMirror,
options: {
schema: {
width: {
type: 'range',
label: 'Width',
label: i18n.ts._miRoom._objects._wallMirror.width,
min: 0,
max: 1,
step: 0.01,
},
height: {
type: 'range',
label: 'Height',
label: i18n.ts._miRoom._objects._wallMirror.height,
min: 0,
max: 1,
step: 0.01,
},
frameThickness: {
type: 'range',
label: 'Frame thickness',
label: i18n.ts._miRoom._objects._wallMirror.frameThickness,
min: 0,
max: 1,
step: 0.01,
},
frameMat: {
type: 'material',
label: 'Frame material',
label: i18n.ts._miRoom._objects._wallMirror.frameMat,
},
},
default: {

View file

@ -7,30 +7,31 @@ import * as BABYLON from '@babylonjs/core';
import { defineObject } from '../object.js';
import { getLightRangeFactorByGraphicsQuality } from '../utility.js';
import { cm, WORLD_SCALE } from '@/world/utility.js';
import { i18n } from '@/i18n.js';
export const wallMountSpotLight = defineObject({
id: 'wallMountSpotLight',
name: 'wallMountSpotLight',
name: i18n.ts._miRoom._objects.wallMountSpotLight,
options: {
schema: {
bodyMat: {
type: 'material',
label: 'Body material',
label: i18n.ts._miRoom._objects._wallMountSpotLight.bodyMat,
},
light: {
type: 'light',
label: 'Light',
label: i18n.ts._miRoom._objects._wallMountSpotLight.light,
},
angleV: {
type: 'range',
label: 'Vertical angle',
label: i18n.ts._miRoom._objects._wallMountSpotLight.angleV,
min: 0,
max: 1,
step: 0.01,
},
angleH: {
type: 'range',
label: 'Horizontal angle',
label: i18n.ts._miRoom._objects._wallMountSpotLight.angleH,
min: 0,
max: 1,
step: 0.01,

View file

@ -5,43 +5,44 @@
import * as BABYLON from '@babylonjs/core';
import { defineObject } from '../object.js';
import { i18n } from '@/i18n.js';
export const wallShelf = defineObject({
id: 'wallShelf',
name: 'Wall Shelf',
name: i18n.ts._miRoom._objects.wallShelf,
options: {
schema: {
style: {
type: 'enum',
label: 'Style',
label: i18n.ts._miRoom._objects._wallShelf.style,
enum: [{
label: 'A',
label: i18n.ts._miRoom._objects._wallShelf['style:A'],
value: 'A',
}, {
label: 'B',
label: i18n.ts._miRoom._objects._wallShelf['style:B'],
value: 'B',
}, {
label: 'C',
label: i18n.ts._miRoom._objects._wallShelf['style:C'],
value: 'C',
}, {
label: 'D',
label: i18n.ts._miRoom._objects._wallShelf['style:D'],
value: 'D',
}],
},
boardStyle: {
type: 'enum',
label: 'Board style',
label: i18n.ts._miRoom._objects._wallShelf.boardStyle,
enum: [{
label: 'Wood',
label: i18n.ts._miRoom._objects._wallShelf['boardStyle:wood'],
value: 'wood',
}, {
label: 'Color',
label: i18n.ts._miRoom._objects._wallShelf['boardStyle:color'],
value: 'color',
}],
},
boardMat: {
type: 'material',
label: 'Board material',
label: i18n.ts._miRoom._objects._wallShelf.boardMat,
},
},
default: {

View file

@ -5,15 +5,16 @@
import * as BABYLON from '@babylonjs/core';
import { defineObject } from '../object.js';
import { i18n } from '@/i18n.js';
export const wireBasket = defineObject({
id: 'wireBasket',
name: 'wireBasket',
name: i18n.ts._miRoom._objects.wireBasket,
options: {
schema: {
bodyMat: {
type: 'material',
label: 'bodyMaterial',
label: i18n.ts._miRoom._objects._wireBasket.bodyMat,
},
},
default: {

View file

@ -5,15 +5,16 @@
import * as BABYLON from '@babylonjs/core';
import { defineObject } from '../object.js';
import { i18n } from '@/i18n.js';
export const wireNet = defineObject({
id: 'wireNet',
name: 'wireNet',
name: i18n.ts._miRoom._objects.wireNet,
options: {
schema: {
bodyMat: {
type: 'material',
label: 'bodyMaterial',
label: i18n.ts._miRoom._objects._wireNet.bodyMat,
},
},
default: {

View file

@ -7,27 +7,28 @@ import * as BABYLON from '@babylonjs/core';
import { defineObject } from '../object.js';
import { getLightRangeFactorByGraphicsQuality } from '../utility.js';
import { cm, remap, WORLD_SCALE } from '@/world/utility.js';
import { i18n } from '@/i18n.js';
export const woodRingsPendantLight = defineObject({
id: 'woodRingsPendantLight',
name: 'woodRingsPendantLight',
name: i18n.ts._miRoom._objects.woodRingsPendantLight,
options: {
schema: {
shadeMat: {
type: 'material',
label: 'Shade material',
label: i18n.ts._miRoom._objects._woodRingsPendantLight.shadeMat,
},
bodyMat: {
type: 'material',
label: 'Body material',
label: i18n.ts._miRoom._objects._woodRingsPendantLight.bodyMat,
},
light: {
type: 'light',
label: 'Light',
label: i18n.ts._miRoom._objects._woodRingsPendantLight.light,
},
length: {
type: 'range',
label: 'Length',
label: i18n.ts._miRoom._objects._woodRingsPendantLight.length,
min: 0,
max: 1,
step: 0.01,

View file

@ -4,10 +4,11 @@
*/
import { defineObject } from '../object.js';
import { i18n } from '@/i18n.js';
export const woodSoundAbsorbingPanel = defineObject({
id: 'woodSoundAbsorbingPanel',
name: 'Wood Sound Absorbing Panel',
name: i18n.ts._miRoom._objects.woodSoundAbsorbingPanel,
options: {
schema: {},
default: {},