This commit is contained in:
syuilo 2026-05-25 11:59:23 +09:00
commit 83a4281a30
80 changed files with 290 additions and 210 deletions

View file

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

View file

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

View file

@ -7,32 +7,33 @@ import * as BABYLON from '@babylonjs/core';
import { createTextureManager, defineObject } from '../object.js';
import { cm, WORLD_SCALE, createPlaneUvMapper } from '../../utility.js';
import { getLightRangeFactorByGraphicsQuality } from '../utility.js';
import { i18n } from '@/i18n.js';
export const allInOnePc = defineObject({
id: 'allInOnePc',
name: 'All-in-One PC',
name: i18n.ts._miRoom._objects.allInOnePc,
options: {
schema: {
bodyMat: {
type: 'material',
label: 'Body material',
label: i18n.ts._miRoom._objects._allInOnePc.bodyMat,
},
bezelMat: {
type: 'material',
label: 'Bezel material',
label: i18n.ts._miRoom._objects._allInOnePc.bezelMat,
},
screenBrightness: {
type: 'range',
label: 'Screen brightness',
label: i18n.ts._miRoom._objects._allInOnePc.screenBrightness,
min: 0,
max: 1,
step: 0.01,
},
image: {
type: 'image',
label: 'Screen image',
label: i18n.ts._miRoom._objects._allInOnePc.image,
presets: [{
label: 'Desktop',
label: i18n.ts._miRoom._objects._allInOnePc.image_desktop,
value: 'desktop',
}],
},

View file

@ -6,10 +6,11 @@
import * as BABYLON from '@babylonjs/core';
import { defineObject } from '../object.js';
import { cm } from '../../utility.js';
import { i18n } from '@/i18n.js';
export const aquarium = defineObject({
id: 'aquarium',
name: 'Aquarium',
name: i18n.ts._miRoom._objects.aquarium,
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 aromaReedDiffuser = defineObject({
id: 'aromaReedDiffuser',
name: 'Aroma Reed Diffuser',
name: i18n.ts._miRoom._objects.aromaReedDiffuser,
options: {
schema: {
bottleMat: {
type: 'material',
label: 'Bottle Material',
label: i18n.ts._miRoom._objects._aromaReedDiffuser.bottleMat,
},
oilMat: {
type: 'material',
label: 'Oil Material',
label: i18n.ts._miRoom._objects._aromaReedDiffuser.oilMat,
},
},
default: {

View file

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

View file

@ -7,10 +7,11 @@ import * as BABYLON from '@babylonjs/core';
import { defineObject } from '../object.js';
import { cm, WORLD_SCALE } from '../../utility.js';
import { getLightRangeFactorByGraphicsQuality } from '../utility.js';
import { i18n } from '@/i18n.js';
export const beamLamp = defineObject({
id: 'beamLamp',
name: 'Beam Lamp',
name: i18n.ts._miRoom._objects.beamLamp,
options: {
schema: {},
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 bed = defineObject({
id: 'bed',
name: 'Bed',
name: i18n.ts._miRoom._objects.bed,
options: {
schema: {
frameMat: {
type: 'material',
label: 'Frame material',
label: i18n.ts._miRoom._objects._bed.frameMat,
},
},
default: {

View file

@ -7,28 +7,29 @@ import * as BABYLON from '@babylonjs/core';
import { defineObject } from '../object.js';
import { cm, remap } from '../../utility.js';
import { createOverridedStates } from '../utility.js';
import { i18n } from '@/i18n.js';
export const blind = defineObject({
id: 'blind',
name: 'Blind',
name: i18n.ts._miRoom._objects.blind,
options: {
schema: {
blades: {
type: 'range',
label: 'Number of blades',
label: i18n.ts._miRoom._objects._blind.blades,
min: 1,
max: 100,
},
angle: {
type: 'range',
label: 'Blade rotation angle (radian)',
label: i18n.ts._miRoom._objects._blind.angle,
min: -Math.PI / 2,
max: Math.PI / 2,
step: 0.01,
},
open: {
type: 'range',
label: 'Opening state',
label: i18n.ts._miRoom._objects._blind.open,
min: 0,
max: 1,
step: 0.01,

View file

@ -4,34 +4,35 @@
*/
import * as BABYLON from '@babylonjs/core';
import { defineObject } from '../object.js';
import { i18n } from '@/i18n.js';
export const book = defineObject({
id: 'book',
name: 'Book',
name: i18n.ts._miRoom._objects.book,
options: {
schema: {
variation: {
type: 'enum',
label: 'Variation',
label: i18n.ts._miRoom._objects._book.variation,
enum: [0, 1],
},
width: {
type: 'range',
label: 'Width',
label: i18n.ts._miRoom._objects._book.width,
min: 0,
max: 1,
step: 0.01,
},
height: {
type: 'range',
label: 'Height',
label: i18n.ts._miRoom._objects._book.height,
min: 0,
max: 1,
step: 0.01,
},
thickness: {
type: 'range',
label: 'thickness',
label: i18n.ts._miRoom._objects._book.thickness,
min: 0,
max: 1,
step: 0.01,

View file

@ -6,29 +6,30 @@
import * as BABYLON from '@babylonjs/core';
import { defineObject } from '../object.js';
import { cm } from '../../utility.js';
import { i18n } from '@/i18n.js';
export const books = defineObject({
id: 'books',
name: 'Books',
name: i18n.ts._miRoom._objects.books,
options: {
schema: {
variation: {
type: 'enum',
label: 'Variation',
label: i18n.ts._miRoom._objects._books.variation,
enum: [{
label: 'A',
label: i18n.ts._miRoom._objects._books.variation_a,
value: 'A',
}, {
label: 'B',
label: i18n.ts._miRoom._objects._books.variation_b,
value: 'B',
}, {
label: 'C',
label: i18n.ts._miRoom._objects._books.variation_c,
value: 'C',
}, {
label: 'D',
label: i18n.ts._miRoom._objects._books.variation_d,
value: 'D',
}, {
label: 'E',
label: i18n.ts._miRoom._objects._books.variation_e,
value: 'E',
}],
},

View file

@ -5,33 +5,34 @@
import * as BABYLON from '@babylonjs/core';
import { defineObject } from '../object.js';
import { i18n } from '@/i18n.js';
export const boxWallShelf = defineObject({
id: 'boxWallShelf',
name: 'boxWallShelf',
name: i18n.ts._miRoom._objects.boxWallShelf,
options: {
schema: {
width: {
type: 'range',
label: 'Width',
label: i18n.ts._miRoom._objects._boxWallShelf.width,
min: 0,
max: 1,
step: 0.01,
},
height: {
type: 'range',
label: 'Height',
label: i18n.ts._miRoom._objects._boxWallShelf.height,
min: 0,
max: 1,
step: 0.01,
},
bodyMat: {
type: 'material',
label: 'Body material',
label: i18n.ts._miRoom._objects._boxWallShelf.bodyMat,
},
withBack: {
type: 'boolean',
label: 'With back',
label: i18n.ts._miRoom._objects._boxWallShelf.withBack,
},
},
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 cactusS = defineObject({
id: 'cactusS',
name: 'Cactus S',
name: i18n.ts._miRoom._objects.cactusS,
options: {
schema: {
potMat: {
type: 'material',
label: 'Pot material',
label: i18n.ts._miRoom._objects._cactusS.potMat,
},
},
default: {

View file

@ -5,23 +5,24 @@
import * as BABYLON from '@babylonjs/core';
import { defineObject } from '../object.js';
import { i18n } from '@/i18n.js';
export const cardboardBox = defineObject({
id: 'cardboardBox',
name: 'Cardboard Box',
name: i18n.ts._miRoom._objects.cardboardBox,
options: {
schema: {
variation: {
type: 'enum',
label: 'Variation',
label: i18n.ts._miRoom._objects._cardboardBox.variation,
enum: [{
label: 'Default',
label: i18n.ts._miRoom._objects._cardboardBox.variation_default,
value: 'default',
}, {
label: 'Mikan',
label: i18n.ts._miRoom._objects._cardboardBox.variation_mikan,
value: 'mikan',
}, {
label: 'Aizon',
label: i18n.ts._miRoom._objects._cardboardBox.variation_aizon,
value: 'aizon',
}],
},

View file

@ -5,15 +5,16 @@
import * as BABYLON from '@babylonjs/core';
import { defineObject } from '../object.js';
import { i18n } from '@/i18n.js';
export const ceilingFanLight = defineObject({
id: 'ceilingFanLight',
name: 'Ceiling Fan Light',
name: i18n.ts._miRoom._objects.ceilingFanLight,
options: {
schema: {
shadeMat: {
type: 'material',
label: 'Shade material',
label: i18n.ts._miRoom._objects._ceilingFanLight.shadeMat,
},
},
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 chair = defineObject({
id: 'chair',
name: 'Chair',
name: i18n.ts._miRoom._objects.chair,
options: {
schema: {
primaryMat: {
type: 'material',
label: 'Primay Material',
label: i18n.ts._miRoom._objects._chair.primaryMat,
},
secondaryMat: {
type: 'material',
label: 'Secondary Material',
label: i18n.ts._miRoom._objects._chair.secondaryMat,
},
},
default: {

View file

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

View file

@ -4,10 +4,11 @@
*/
import { defineObject } from '../object.js';
import { i18n } from '@/i18n.js';
export const coffeeCup = defineObject({
id: 'coffeeCup',
name: 'Coffee Cup',
name: i18n.ts._miRoom._objects.coffeeCup,
options: {
schema: {},
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 colorBox = defineObject({
id: 'colorBox',
name: 'Color Box',
name: i18n.ts._miRoom._objects.colorBox,
options: {
schema: {
mat: {
type: 'material',
label: 'Material',
label: i18n.ts._miRoom._objects._colorBox.mat,
},
},
default: {

View file

@ -5,36 +5,37 @@
import * as BABYLON from '@babylonjs/core';
import { defineObject } from '../object.js';
import { i18n } from '@/i18n.js';
export const cuboid = defineObject({
id: 'cuboid',
name: 'cuboid',
name: i18n.ts._miRoom._objects.cuboid,
options: {
schema: {
x: {
type: 'range',
label: 'X',
label: i18n.ts._miRoom._objects._cuboid.x,
min: 0,
max: 1,
step: 0.01,
},
y: {
type: 'range',
label: 'Y',
label: i18n.ts._miRoom._objects._cuboid.y,
min: 0,
max: 1,
step: 0.01,
},
z: {
type: 'range',
label: 'Z',
label: i18n.ts._miRoom._objects._cuboid.z,
min: 0,
max: 1,
step: 0.01,
},
mat: {
type: 'material',
label: 'Material',
label: i18n.ts._miRoom._objects._cuboid.mat,
},
},
default: {

View file

@ -7,10 +7,11 @@ import * as BABYLON from '@babylonjs/core';
import { defineObject } from '../object.js';
import { cm } from '../../utility.js';
import { yuge } from '../utility.js';
import { i18n } from '@/i18n.js';
export const cupNoodle = defineObject({
id: 'cupNoodle',
name: 'Cup Noodle',
name: i18n.ts._miRoom._objects.cupNoodle,
options: {
schema: {},
default: {},

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -7,35 +7,36 @@ import * as BABYLON from '@babylonjs/core';
import { defineObject } from '../object.js';
import { cm, WORLD_SCALE } from '../../utility.js';
import { getLightRangeFactorByGraphicsQuality } from '../utility.js';
import { i18n } from '@/i18n.js';
export const desktopPc = defineObject({
id: 'desktopPc',
name: 'Desktop PC',
name: i18n.ts._miRoom._objects.desktopPc,
options: {
schema: {
bodyMat: {
type: 'material',
label: 'Body material',
label: i18n.ts._miRoom._objects._desktopPc.bodyMat,
},
coverMat: {
type: 'material',
label: 'Cover material',
label: i18n.ts._miRoom._objects._desktopPc.coverMat,
},
inner1Mat: {
type: 'material',
label: 'Inner material 1',
label: i18n.ts._miRoom._objects._desktopPc.inner1Mat,
},
inner2Mat: {
type: 'material',
label: 'Inner material 2',
label: i18n.ts._miRoom._objects._desktopPc.inner2Mat,
},
inner3Mat: {
type: 'material',
label: 'Inner material 3',
label: i18n.ts._miRoom._objects._desktopPc.inner3Mat,
},
ledColor: {
type: 'color',
label: 'LED color',
label: i18n.ts._miRoom._objects._desktopPc.ledColor,
},
},
default: {

View file

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

View file

@ -6,24 +6,25 @@
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 djPlayer = defineObject({
id: 'djPlayer',
name: 'djPlayer',
name: i18n.ts._miRoom._objects.djPlayer,
options: {
schema: {
screenBrightness: {
type: 'range',
label: 'Screen brightness',
label: i18n.ts._miRoom._objects._djPlayer.screenBrightness,
min: 0,
max: 1,
step: 0.01,
},
image: {
type: 'image',
label: 'Image',
label: i18n.ts._miRoom._objects._djPlayer.image,
presets: [{
label: 'Waveform',
label: i18n.ts._miRoom._objects._djPlayer['image:waveform'],
value: 'waveform',
}],
},

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 ductRailSpotLights = defineObject({
id: 'ductRailSpotLights',
name: 'ductRailSpotLights',
name: i18n.ts._miRoom._objects.ductRailSpotLights,
options: {
schema: {
bodyMat: {
type: 'material',
label: 'Body material',
label: i18n.ts._miRoom._objects._ductRailSpotLights.bodyMat,
},
light: {
type: 'light',
label: 'Light',
label: i18n.ts._miRoom._objects._ductRailSpotLights.light,
},
angleV: {
type: 'range',
label: 'Vertical angle',
label: i18n.ts._miRoom._objects._ductRailSpotLights.angleV,
min: 0,
max: 1,
step: 0.01,
},
angleH: {
type: 'range',
label: 'Horizontal angle',
label: i18n.ts._miRoom._objects._ductRailSpotLights.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 ductTape = defineObject({
id: 'ductTape',
name: 'Duct Tape',
name: i18n.ts._miRoom._objects.ductTape,
options: {
schema: {},
default: {},

View file

@ -6,27 +6,28 @@
import * as BABYLON from '@babylonjs/core';
import { defineObject } from '../object.js';
import { createPlaneUvMapper, RecyvlingTextGrid } from '../../utility.js';
import { i18n } from '@/i18n.js';
export const electronicDisplayBoard = defineObject({
id: 'electronicDisplayBoard',
name: 'electronicDisplayBoard',
name: i18n.ts._miRoom._objects.electronicDisplayBoard,
options: {
schema: {
text: {
type: 'string',
label: 'Text',
label: i18n.ts._miRoom._objects._electronicDisplayBoard.text,
},
frameMat: {
type: 'material',
label: 'Frame material',
label: i18n.ts._miRoom._objects._electronicDisplayBoard.frameMat,
},
ledColor: {
type: 'color',
label: 'LED color',
label: i18n.ts._miRoom._objects._electronicDisplayBoard.ledColor,
},
ledBrightness: {
type: 'range',
label: 'LED brightness',
label: i18n.ts._miRoom._objects._electronicDisplayBoard.ledBrightness,
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 emptyBento = defineObject({
id: 'emptyBento',
name: 'Empty Bento',
name: i18n.ts._miRoom._objects.emptyBento,
options: {
schema: {},
default: {},

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -5,29 +5,30 @@
import * as BABYLON from '@babylonjs/core';
import { defineObject } from '../object.js';
import { i18n } from '@/i18n.js';
export const hangingDuctRail = defineObject({
id: 'hangingDuctRail',
name: 'hangingDuctRail',
name: i18n.ts._miRoom._objects.hangingDuctRail,
options: {
schema: {
width: {
type: 'range',
label: 'Width',
label: i18n.ts._miRoom._objects._hangingDuctRail.width,
min: 0,
max: 1,
step: 0.01,
},
height: {
type: 'range',
label: 'Height',
label: i18n.ts._miRoom._objects._hangingDuctRail.height,
min: 0,
max: 1,
step: 0.01,
},
bodyMat: {
type: 'material',
label: 'body material',
label: i18n.ts._miRoom._objects._hangingDuctRail.bodyMat,
},
},
default: {

View file

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

View file

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

View file

@ -5,21 +5,22 @@
import * as BABYLON from '@babylonjs/core';
import { defineObject, defineObjectClass } from '../object.js';
import { i18n } from '@/i18n.js';
const base = defineObjectClass({
options: {
schema: {
frameMat: {
type: 'material',
label: 'Frame material',
label: i18n.ts._miRoom._objects._ironFrameShelf.frameMat,
},
boardMat: {
type: 'material',
label: 'Board material',
label: i18n.ts._miRoom._objects._ironFrameShelf.boardMat,
},
width: {
type: 'range',
label: 'Width',
label: i18n.ts._miRoom._objects._ironFrameShelf.width,
min: 0,
max: 1,
step: 0.01,
@ -80,18 +81,18 @@ const base = defineObjectClass({
export const ironFrameShelf5 = base.extend({
id: 'ironFrameShelf5',
name: 'ironFrameShelf 5',
name: i18n.ts._miRoom._objects.ironFrameShelf5,
path: () => 'iron-frame-shelf/iron-frame-shelf-5',
});
export const ironFrameShelf4 = base.extend({
id: 'ironFrameShelf4',
name: 'ironFrameShelf 4',
name: i18n.ts._miRoom._objects.ironFrameShelf4,
path: () => 'iron-frame-shelf/iron-frame-shelf-4',
});
export const ironFrameShelf3 = base.extend({
id: 'ironFrameShelf3',
name: 'ironFrameShelf 3',
name: i18n.ts._miRoom._objects.ironFrameShelf3,
path: () => 'iron-frame-shelf/iron-frame-shelf-3',
});

View file

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

View file

@ -5,20 +5,21 @@
import * as BABYLON from '@babylonjs/core';
import { defineObject } from '../object.js';
import { i18n } from '@/i18n.js';
export const issyoubin = defineObject({
id: 'issyoubin',
name: 'issyoubin',
name: i18n.ts._miRoom._objects.issyoubin,
options: {
schema: {
variation: {
type: 'enum',
label: 'Variation',
label: i18n.ts._miRoom._objects._issyoubin.variation,
enum: [{
label: 'Misuki',
label: i18n.ts._miRoom._objects._issyoubin.variation_misuki,
value: 'misuki',
}, {
label: 'AI',
label: i18n.ts._miRoom._objects._issyoubin.variation_ai,
value: 'ai',
}],
},

View file

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

View file

@ -7,35 +7,36 @@ import * as BABYLON from '@babylonjs/core';
import { createTextureManager, defineObject } from '../object.js';
import { cm, WORLD_SCALE, createPlaneUvMapper } from '../../utility.js';
import { getLightRangeFactorByGraphicsQuality } from '../utility.js';
import { i18n } from '@/i18n.js';
export const laptopPc = defineObject({
id: 'laptopPc',
name: 'Laptop PC',
name: i18n.ts._miRoom._objects.laptopPc,
options: {
schema: {
bodyMat: {
type: 'material',
label: 'Body material',
label: i18n.ts._miRoom._objects._laptopPc.bodyMat,
},
bezelMat: {
type: 'material',
label: 'Bezel material',
label: i18n.ts._miRoom._objects._laptopPc.bezelMat,
},
screenBrightness: {
type: 'range',
label: 'Screen brightness',
label: i18n.ts._miRoom._objects._laptopPc.screenBrightness,
min: 0,
max: 1,
step: 0.01,
},
image: {
type: 'image',
label: 'Image',
label: i18n.ts._miRoom._objects._laptopPc.image,
presets: [],
},
openAngle: {
type: 'range',
label: 'Open',
label: i18n.ts._miRoom._objects._laptopPc.openAngle,
min: -Math.PI / 2,
max: Math.PI / 2,
step: 0.01,

View file

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

View file

@ -6,27 +6,28 @@ import * as BABYLON from '@babylonjs/core';
import { defineObject } from '../object.js';
import { cm, WORLD_SCALE } from '../../utility.js';
import { getLightRangeFactorByGraphicsQuality } from '../utility.js';
import { i18n } from '@/i18n.js';
export const lavaLamp = defineObject({
id: 'lavaLamp',
name: 'Lava Lamp',
name: i18n.ts._miRoom._objects.lavaLamp,
options: {
schema: {
bodyMat: {
type: 'material',
label: 'Body material',
label: i18n.ts._miRoom._objects._lavaLamp.bodyMat,
},
glassMat: {
type: 'material',
label: 'Glass material',
label: i18n.ts._miRoom._objects._lavaLamp.glassMat,
},
lightColor: {
type: 'color',
label: 'Light color',
label: i18n.ts._miRoom._objects._lavaLamp.lightColor,
},
lavaColor: {
type: 'color',
label: 'Lava color',
label: i18n.ts._miRoom._objects._lavaLamp.lavaColor,
},
},
default: {

View file

@ -4,10 +4,11 @@
*/
import { defineObject } from '../object.js';
import { i18n } from '@/i18n.js';
export const letterCase = defineObject({
id: 'letterCase',
name: 'Letter Case',
name: i18n.ts._miRoom._objects.letterCase,
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 lowPartitionBar = defineObject({
id: 'lowPartitionBar',
name: 'lowPartitionBar',
name: i18n.ts._miRoom._objects.lowPartitionBar,
options: {
schema: {
bodyMat: {
type: 'material',
label: 'Body material',
label: i18n.ts._miRoom._objects._lowPartitionBar.bodyMat,
},
width: {
type: 'range',
label: 'Width',
label: i18n.ts._miRoom._objects._lowPartitionBar.width,
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 miObjet = defineObject({
id: 'miObjet',
name: 'Mi objet',
name: i18n.ts._miRoom._objects.miObjet,
options: {
schema: {},
default: {},

View file

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

View file

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

View file

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

View file

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

View file

@ -7,26 +7,27 @@ import * as BABYLON from '@babylonjs/core';
import { createTextureManager, defineObject } from '../object.js';
import { cm, WORLD_SCALE, createPlaneUvMapper, normalizeUvToSquare } from '../../utility.js';
import { getLightRangeFactorByGraphicsQuality } from '../utility.js';
import { i18n } from '@/i18n.js';
export const monitor = defineObject({
id: 'monitor',
name: 'Monitor',
name: i18n.ts._miRoom._objects.monitor,
options: {
schema: {
bodyMat: {
type: 'material',
label: 'Body material',
label: i18n.ts._miRoom._objects._monitor.bodyMat,
},
screenBrightness: {
type: 'range',
label: 'Screen brightness',
label: i18n.ts._miRoom._objects._monitor.screenBrightness,
min: 0,
max: 1,
step: 0.01,
},
image: {
type: 'image',
label: 'Image',
label: i18n.ts._miRoom._objects._monitor.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 monitorSpeaker = defineObject({
id: 'monitorSpeaker',
name: 'Monitor Speaker',
name: i18n.ts._miRoom._objects.monitorSpeaker,
options: {
schema: {
mat: {
type: 'material',
label: 'Material',
label: i18n.ts._miRoom._objects._monitorSpeaker.mat,
},
},
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 monstera = defineObject({
id: 'monstera',
name: 'Monstera',
name: i18n.ts._miRoom._objects.monstera,
options: {
schema: {
potMat: {
type: 'material',
label: 'potMaterial',
label: i18n.ts._miRoom._objects._monstera.potMat,
},
},
default: {

View file

@ -7,10 +7,11 @@ import * as BABYLON from '@babylonjs/core';
import { defineObject } from '../object.js';
import { cm } from '../../utility.js';
import { yuge } from '../utility.js';
import { i18n } from '@/i18n.js';
export const mug = defineObject({
id: 'mug',
name: 'Mug',
name: i18n.ts._miRoom._objects.mug,
options: {
schema: {},
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 newtonsCradle = defineObject({
id: 'newtonsCradle',
name: 'newtonsCradle',
name: i18n.ts._miRoom._objects.newtonsCradle,
options: {
schema: {
frameMat: {
type: 'material',
label: 'Frame material',
label: i18n.ts._miRoom._objects._newtonsCradle.frameMat,
},
},
default: {

View file

@ -4,10 +4,11 @@
*/
import { defineObject } from '../object.js';
import { i18n } from '@/i18n.js';
export const openedCardboardBox = defineObject({
id: 'openedCardboardBox',
name: 'Opened Cardboard Box',
name: i18n.ts._miRoom._objects.openedCardboardBox,
options: {
schema: {},
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 pachira = defineObject({
id: 'pachira',
name: 'Pachira',
name: i18n.ts._miRoom._objects.pachira,
options: {
schema: {
potMat: {
type: 'material',
label: 'potMaterial',
label: i18n.ts._miRoom._objects._pachira.potMat,
},
},
default: {

View file

@ -5,34 +5,35 @@
import * as BABYLON from '@babylonjs/core';
import { defineObject } from '../object.js';
import { i18n } from '@/i18n.js';
export const petBottle = defineObject({
id: 'petBottle',
name: 'PET Bottle',
name: i18n.ts._miRoom._objects.petBottle,
options: {
schema: {
variation: {
type: 'enum',
label: 'Variation',
label: i18n.ts._miRoom._objects._petBottle.variation,
enum: [{
label: 'Mineral Water',
label: i18n.ts._miRoom._objects._petBottle.variation_mineralWater,
value: 'mineral-water',
}, {
label: 'Green Tea',
label: i18n.ts._miRoom._objects._petBottle.variation_greenTea,
value: 'green-tea',
}],
},
withCap: {
type: 'boolean',
label: 'With Cap',
label: i18n.ts._miRoom._objects._petBottle.withCap,
},
withLabel: {
type: 'boolean',
label: 'With Label',
label: i18n.ts._miRoom._objects._petBottle.withLabel,
},
empty: {
type: 'boolean',
label: 'Empty',
label: i18n.ts._miRoom._objects._petBottle.empty,
},
},
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 piano = defineObject({
id: 'piano',
name: 'Piano',
name: i18n.ts._miRoom._objects.piano,
options: {
schema: {
bodyMat: {
type: 'material',
label: 'bodyMaterial',
label: i18n.ts._miRoom._objects._piano.bodyMat,
},
},
default: {

View file

@ -6,67 +6,68 @@
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 pictureFrame = defineObject({
id: 'pictureFrame',
name: 'Simple picture frame',
name: i18n.ts._miRoom._objects.pictureFrame,
options: {
schema: {
frameMat: {
type: 'material',
label: 'Frame material',
label: i18n.ts._miRoom._objects._pictureFrame.frameMat,
},
width: {
type: 'range',
label: 'Width',
label: i18n.ts._miRoom._objects._pictureFrame.width,
min: 0,
max: 1,
step: 0.01,
},
height: {
type: 'range',
label: 'Height',
label: i18n.ts._miRoom._objects._pictureFrame.height,
min: 0,
max: 1,
step: 0.01,
},
frameThickness: {
type: 'range',
label: 'Frame thickness',
label: i18n.ts._miRoom._objects._pictureFrame.frameThickness,
min: 0,
max: 1,
step: 0.01,
},
depth: {
type: 'range',
label: 'Depth',
label: i18n.ts._miRoom._objects._pictureFrame.depth,
min: 0,
max: 1,
step: 0.01,
},
matHThickness: {
type: 'range',
label: 'Mat horizontal thickness',
label: i18n.ts._miRoom._objects._pictureFrame.matHThickness,
min: 0,
max: 1,
step: 0.01,
},
matVThickness: {
type: 'range',
label: 'Mat vertical thickness',
label: i18n.ts._miRoom._objects._pictureFrame.matVThickness,
min: 0,
max: 1,
step: 0.01,
},
withCover: {
type: 'boolean',
label: 'With cover',
label: i18n.ts._miRoom._objects._pictureFrame.withCover,
},
image: {
type: 'image',
label: 'Image',
label: i18n.ts._miRoom._objects._pictureFrame.image,
presets: [],
},
},

View file

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

View file

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

View file

@ -4,10 +4,11 @@
*/
import { defineObject } from '../object.js';
import { i18n } from '@/i18n.js';
export const plant2 = defineObject({
id: 'plant2',
name: 'Plant 2',
name: i18n.ts._miRoom._objects.plant2,
options: {
schema: {},
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 poster = defineObject({
id: 'poster',
name: 'Poster',
name: i18n.ts._miRoom._objects.poster,
options: {
schema: {
width: {
type: 'range',
label: 'Width',
label: i18n.ts._miRoom._objects._poster.width,
min: 0,
max: 1,
step: 0.01,
},
height: {
type: 'range',
label: 'Height',
label: i18n.ts._miRoom._objects._poster.height,
min: 0,
max: 1,
step: 0.01,
},
image: {
type: 'image',
label: 'Image',
label: i18n.ts._miRoom._objects._poster.image,
presets: [],
},
},

View file

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

View file

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

View file

@ -7,6 +7,7 @@ import * as BABYLON from '@babylonjs/core';
import seedrandom from 'seedrandom';
import { defineObject } from '../object.js';
import { cm, WORLD_SCALE } from '@/world/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);
@ -14,34 +15,34 @@ const remap = (value: number, fromMin: number, fromMax: number, toMin: number, t
export const randomBooks = defineObject({
id: 'randomBooks',
name: '雑多な本',
name: i18n.ts._miRoom._objects.randomBooks,
options: {
schema: {
variation: {
type: 'enum',
label: 'Variation',
label: i18n.ts._miRoom._objects._randomBooks.variation,
enum: [{
label: 'Mix',
label: i18n.ts._miRoom._objects._randomBooks.variation_mix,
value: 'mix',
}, {
label: 'Mix (Plain)',
label: i18n.ts._miRoom._objects._randomBooks.variation_mixPlain,
value: 'mix-plain',
}],
},
count: {
type: 'range',
label: 'Count',
label: i18n.ts._miRoom._objects._randomBooks.count,
min: 1,
max: 30,
step: 1,
},
stackVertically: {
type: 'boolean',
label: 'Stack vertically',
label: i18n.ts._miRoom._objects._randomBooks.stackVertically,
},
seed: {
type: 'seed',
label: 'Seed',
label: i18n.ts._miRoom._objects._randomBooks.seed,
},
},
default: {

View file

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

View file

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

View file

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

View file

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

View file

@ -4,10 +4,11 @@
*/
import { defineObject } from '../object.js';
import { i18n } from '@/i18n.js';
export const siphon = defineObject({
id: 'siphon',
name: 'Siphon',
name: i18n.ts._miRoom._objects.siphon,
options: {
schema: {},
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 snakeplant = defineObject({
id: 'snakeplant',
name: 'Snake Plant',
name: i18n.ts._miRoom._objects.snakeplant,
options: {
schema: {
potMat: {
type: 'material',
label: 'potMaterial',
label: i18n.ts._miRoom._objects._snakeplant.potMat,
},
},
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 sofa = defineObject({
id: 'sofa',
name: 'Sofa',
name: i18n.ts._miRoom._objects.sofa,
options: {
schema: {
bodyMat: {
type: 'material',
label: 'bodyMaterial',
label: i18n.ts._miRoom._objects._sofa.bodyMat,
},
},
default: {