diff --git a/packages/frontend/assets/room/objects/wall-shelf/wall-shelf.blend b/packages/frontend/assets/room/objects/wall-shelf/wall-shelf.blend index 42392dbdc0..54d11ac256 100644 Binary files a/packages/frontend/assets/room/objects/wall-shelf/wall-shelf.blend and b/packages/frontend/assets/room/objects/wall-shelf/wall-shelf.blend differ diff --git a/packages/frontend/assets/room/objects/wall-shelf/wall-shelf.glb b/packages/frontend/assets/room/objects/wall-shelf/wall-shelf.glb index 04228ca431..c470ccc767 100644 Binary files a/packages/frontend/assets/room/objects/wall-shelf/wall-shelf.glb and b/packages/frontend/assets/room/objects/wall-shelf/wall-shelf.glb differ diff --git a/packages/frontend/src/utility/room/objects/aircon.ts b/packages/frontend/src/utility/room/objects/aircon.ts index 2ce8bbf800..d8a7c4fa08 100644 --- a/packages/frontend/src/utility/room/objects/aircon.ts +++ b/packages/frontend/src/utility/room/objects/aircon.ts @@ -7,7 +7,11 @@ import { defineObject } from '../engine.js'; export const aircon = defineObject({ id: 'aircon', - defaultOptions: {}, + name: 'Air Conditioner', + options: { + schema: {}, + default: {}, + }, placement: 'wall', createInstance: () => { return { diff --git a/packages/frontend/src/utility/room/objects/aquarium.ts b/packages/frontend/src/utility/room/objects/aquarium.ts index 420f5eaca0..74965cb8e1 100644 --- a/packages/frontend/src/utility/room/objects/aquarium.ts +++ b/packages/frontend/src/utility/room/objects/aquarium.ts @@ -8,7 +8,11 @@ import { defineObject } from '../engine.js'; export const aquarium = defineObject({ id: 'aquarium', - defaultOptions: {}, + name: 'Aquarium', + options: { + schema: {}, + default: {}, + }, placement: 'top', createInstance: ({ room, root }) => { return { diff --git a/packages/frontend/src/utility/room/objects/banknote.ts b/packages/frontend/src/utility/room/objects/banknote.ts index fce1cdbbca..493d040228 100644 --- a/packages/frontend/src/utility/room/objects/banknote.ts +++ b/packages/frontend/src/utility/room/objects/banknote.ts @@ -7,7 +7,11 @@ import { defineObject } from '../engine.js'; export const banknote = defineObject({ id: 'banknote', - defaultOptions: {}, + name: 'Banknote', + options: { + schema: {}, + default: {}, + }, placement: 'top', createInstance: () => { return { diff --git a/packages/frontend/src/utility/room/objects/bed.ts b/packages/frontend/src/utility/room/objects/bed.ts index 9002d121c9..2c62444823 100644 --- a/packages/frontend/src/utility/room/objects/bed.ts +++ b/packages/frontend/src/utility/room/objects/bed.ts @@ -7,7 +7,11 @@ import { defineObject } from '../engine.js'; export const bed = defineObject({ id: 'bed', - defaultOptions: {}, + name: 'Bed', + options: { + schema: {}, + default: {}, + }, placement: 'floor', createInstance: () => { return { diff --git a/packages/frontend/src/utility/room/objects/book.ts b/packages/frontend/src/utility/room/objects/book.ts index cca2f2319b..2dadf4e152 100644 --- a/packages/frontend/src/utility/room/objects/book.ts +++ b/packages/frontend/src/utility/room/objects/book.ts @@ -7,8 +7,18 @@ import { defineObject } from '../engine.js'; export const book = defineObject({ id: 'book', - defaultOptions: { - variation: null as number | null, + name: 'Book', + options: { + schema: { + variation: { + type: 'enum', + label: 'Variation', + enum: [0, 1], + }, + }, + default: { + variation: 0, + }, }, placement: 'top', createInstance: ({ options, root }) => { diff --git a/packages/frontend/src/utility/room/objects/cactusS.ts b/packages/frontend/src/utility/room/objects/cactusS.ts index 6ca0b14ece..f46173f192 100644 --- a/packages/frontend/src/utility/room/objects/cactusS.ts +++ b/packages/frontend/src/utility/room/objects/cactusS.ts @@ -7,7 +7,11 @@ import { defineObject } from '../engine.js'; export const cactusS = defineObject({ id: 'cactusS', - defaultOptions: {}, + name: 'Cactus S', + options: { + schema: {}, + default: {}, + }, placement: 'top', createInstance: () => { return { diff --git a/packages/frontend/src/utility/room/objects/cardboardBox.ts b/packages/frontend/src/utility/room/objects/cardboardBox.ts index d5f17a4334..b8797452ca 100644 --- a/packages/frontend/src/utility/room/objects/cardboardBox.ts +++ b/packages/frontend/src/utility/room/objects/cardboardBox.ts @@ -8,8 +8,18 @@ import { defineObject } from '../engine.js'; export const cardboardBox = defineObject({ id: 'cardboardBox', - defaultOptions: { - variation: null as string | null, + name: 'Cardboard Box', + options: { + schema: { + variation: { + type: 'enum', + label: 'Variation', + enum: ['default', 'mikan', 'aizon'], + }, + }, + default: { + variation: 'default', + }, }, placement: 'top', createInstance: ({ room, options, root }) => { diff --git a/packages/frontend/src/utility/room/objects/ceilingFanLight.ts b/packages/frontend/src/utility/room/objects/ceilingFanLight.ts index 1a7a7c3ed3..8790de86e5 100644 --- a/packages/frontend/src/utility/room/objects/ceilingFanLight.ts +++ b/packages/frontend/src/utility/room/objects/ceilingFanLight.ts @@ -8,7 +8,11 @@ import { defineObject } from '../engine.js'; export const ceilingFanLight = defineObject({ id: 'ceilingFanLight', - defaultOptions: {}, + name: 'Ceiling Fan Light', + options: { + schema: {}, + default: {}, + }, placement: 'ceiling', createInstance: ({ room, root }) => { return { diff --git a/packages/frontend/src/utility/room/objects/chair.ts b/packages/frontend/src/utility/room/objects/chair.ts index e766b62bed..6b6a4556aa 100644 --- a/packages/frontend/src/utility/room/objects/chair.ts +++ b/packages/frontend/src/utility/room/objects/chair.ts @@ -7,7 +7,11 @@ import { defineObject } from '../engine.js'; export const chair = defineObject({ id: 'chair', - defaultOptions: {}, + name: 'Chair', + options: { + schema: {}, + default: {}, + }, placement: 'floor', isChair: true, createInstance: () => { diff --git a/packages/frontend/src/utility/room/objects/colorBox.ts b/packages/frontend/src/utility/room/objects/colorBox.ts index 6861017b23..a9beb74c04 100644 --- a/packages/frontend/src/utility/room/objects/colorBox.ts +++ b/packages/frontend/src/utility/room/objects/colorBox.ts @@ -7,7 +7,11 @@ import { defineObject } from '../engine.js'; export const colorBox = defineObject({ id: 'colorBox', - defaultOptions: {}, + name: 'Color Box', + options: { + schema: {}, + default: {}, + }, placement: 'floor', createInstance: () => { return { diff --git a/packages/frontend/src/utility/room/objects/cupNoodle.ts b/packages/frontend/src/utility/room/objects/cupNoodle.ts index 528f2c9e1a..a3530c5563 100644 --- a/packages/frontend/src/utility/room/objects/cupNoodle.ts +++ b/packages/frontend/src/utility/room/objects/cupNoodle.ts @@ -9,7 +9,11 @@ import { yuge } from '../utility.js'; export const cupNoodle = defineObject({ id: 'cupNoodle', - defaultOptions: {}, + name: 'Cup Noodle', + options: { + schema: {}, + default: {}, + }, placement: 'top', createInstance: ({ room, root }) => { return { diff --git a/packages/frontend/src/utility/room/objects/desk.ts b/packages/frontend/src/utility/room/objects/desk.ts index d97b60d19c..cb51852074 100644 --- a/packages/frontend/src/utility/room/objects/desk.ts +++ b/packages/frontend/src/utility/room/objects/desk.ts @@ -7,7 +7,11 @@ import { defineObject } from '../engine.js'; export const desk = defineObject({ id: 'desk', - defaultOptions: {}, + name: 'Desk', + options: { + schema: {}, + default: {}, + }, placement: 'floor', createInstance: () => { return { diff --git a/packages/frontend/src/utility/room/objects/ductTape.ts b/packages/frontend/src/utility/room/objects/ductTape.ts index 1876b82465..080398c0f3 100644 --- a/packages/frontend/src/utility/room/objects/ductTape.ts +++ b/packages/frontend/src/utility/room/objects/ductTape.ts @@ -7,7 +7,11 @@ import { defineObject } from '../engine.js'; export const ductTape = defineObject({ id: 'ductTape', - defaultOptions: {}, + name: 'Duct Tape', + options: { + schema: {}, + default: {}, + }, placement: 'top', createInstance: () => { return { diff --git a/packages/frontend/src/utility/room/objects/energyDrink.ts b/packages/frontend/src/utility/room/objects/energyDrink.ts index e7bcccb0d3..51cb061a88 100644 --- a/packages/frontend/src/utility/room/objects/energyDrink.ts +++ b/packages/frontend/src/utility/room/objects/energyDrink.ts @@ -7,7 +7,11 @@ import { defineObject } from '../engine.js'; export const energyDrink = defineObject({ id: 'energyDrink', - defaultOptions: {}, + name: 'Energy Drink', + options: { + schema: {}, + default: {}, + }, placement: 'top', createInstance: () => { return { diff --git a/packages/frontend/src/utility/room/objects/facialTissue.ts b/packages/frontend/src/utility/room/objects/facialTissue.ts index a19db98ccd..ad058df0df 100644 --- a/packages/frontend/src/utility/room/objects/facialTissue.ts +++ b/packages/frontend/src/utility/room/objects/facialTissue.ts @@ -7,7 +7,11 @@ import { defineObject } from '../engine.js'; export const facialTissue = defineObject({ id: 'facialTissue', - defaultOptions: {}, + name: 'Facial Tissue', + options: { + schema: {}, + default: {}, + }, placement: 'top', createInstance: () => { return { diff --git a/packages/frontend/src/utility/room/objects/keyboard.ts b/packages/frontend/src/utility/room/objects/keyboard.ts index 1f1f3a31d7..5a10691a88 100644 --- a/packages/frontend/src/utility/room/objects/keyboard.ts +++ b/packages/frontend/src/utility/room/objects/keyboard.ts @@ -7,7 +7,11 @@ import { defineObject } from '../engine.js'; export const keyboard = defineObject({ id: 'keyboard', - defaultOptions: {}, + name: 'Keyboard', + options: { + schema: {}, + default: {}, + }, placement: 'top', createInstance: () => { return { diff --git a/packages/frontend/src/utility/room/objects/lavaLamp.ts b/packages/frontend/src/utility/room/objects/lavaLamp.ts index 551f5ed8a2..ee30054bd2 100644 --- a/packages/frontend/src/utility/room/objects/lavaLamp.ts +++ b/packages/frontend/src/utility/room/objects/lavaLamp.ts @@ -7,7 +7,11 @@ import { defineObject } from '../engine.js'; export const lavaLamp = defineObject({ id: 'lavaLamp', - defaultOptions: {}, + name: 'Lava Lamp', + options: { + schema: {}, + default: {}, + }, placement: 'top', createInstance: ({ room, root }) => { return { diff --git a/packages/frontend/src/utility/room/objects/letterCase.ts b/packages/frontend/src/utility/room/objects/letterCase.ts index 702848b7f4..290e75af70 100644 --- a/packages/frontend/src/utility/room/objects/letterCase.ts +++ b/packages/frontend/src/utility/room/objects/letterCase.ts @@ -7,7 +7,11 @@ import { defineObject } from '../engine.js'; export const letterCase = defineObject({ id: 'letterCase', - defaultOptions: {}, + name: 'Letter Case', + options: { + schema: {}, + default: {}, + }, placement: 'top', createInstance: () => { return { diff --git a/packages/frontend/src/utility/room/objects/milk.ts b/packages/frontend/src/utility/room/objects/milk.ts index f8f996b3c8..38ed82da03 100644 --- a/packages/frontend/src/utility/room/objects/milk.ts +++ b/packages/frontend/src/utility/room/objects/milk.ts @@ -7,7 +7,11 @@ import { defineObject } from '../engine.js'; export const milk = defineObject({ id: 'milk', - defaultOptions: {}, + name: 'Milk', + options: { + schema: {}, + default: {}, + }, placement: 'top', createInstance: () => { return { diff --git a/packages/frontend/src/utility/room/objects/monitor.ts b/packages/frontend/src/utility/room/objects/monitor.ts index aa5b9fed9a..74c10e04c1 100644 --- a/packages/frontend/src/utility/room/objects/monitor.ts +++ b/packages/frontend/src/utility/room/objects/monitor.ts @@ -7,7 +7,11 @@ import { defineObject } from '../engine.js'; export const monitor = defineObject({ id: 'monitor', - defaultOptions: {}, + name: 'Monitor', + options: { + schema: {}, + default: {}, + }, placement: 'top', createInstance: () => { return { diff --git a/packages/frontend/src/utility/room/objects/monstera.ts b/packages/frontend/src/utility/room/objects/monstera.ts index a2bf4559f1..aa508072ef 100644 --- a/packages/frontend/src/utility/room/objects/monstera.ts +++ b/packages/frontend/src/utility/room/objects/monstera.ts @@ -7,7 +7,11 @@ import { defineObject } from '../engine.js'; export const monstera = defineObject({ id: 'monstera', - defaultOptions: {}, + name: 'Monstera', + options: { + schema: {}, + default: {}, + }, placement: 'top', createInstance: () => { return { diff --git a/packages/frontend/src/utility/room/objects/mug.ts b/packages/frontend/src/utility/room/objects/mug.ts index 5b3a4172be..c23d7b9067 100644 --- a/packages/frontend/src/utility/room/objects/mug.ts +++ b/packages/frontend/src/utility/room/objects/mug.ts @@ -9,7 +9,11 @@ import { yuge } from '../utility.js'; export const mug = defineObject({ id: 'mug', - defaultOptions: {}, + name: 'Mug', + options: { + schema: {}, + default: {}, + }, placement: 'top', createInstance: ({ room, root }) => { return { diff --git a/packages/frontend/src/utility/room/objects/openedCardboardBox.ts b/packages/frontend/src/utility/room/objects/openedCardboardBox.ts index 330b4dc244..ad7492dcd4 100644 --- a/packages/frontend/src/utility/room/objects/openedCardboardBox.ts +++ b/packages/frontend/src/utility/room/objects/openedCardboardBox.ts @@ -7,7 +7,11 @@ import { defineObject } from '../engine.js'; export const openedCardboardBox = defineObject({ id: 'openedCardboardBox', - defaultOptions: {}, + name: 'Opened Cardboard Box', + options: { + schema: {}, + default: {}, + }, placement: 'top', createInstance: () => { return { diff --git a/packages/frontend/src/utility/room/objects/pachira.ts b/packages/frontend/src/utility/room/objects/pachira.ts index 87abc1ea73..9e69dc5039 100644 --- a/packages/frontend/src/utility/room/objects/pachira.ts +++ b/packages/frontend/src/utility/room/objects/pachira.ts @@ -7,7 +7,11 @@ import { defineObject } from '../engine.js'; export const pachira = defineObject({ id: 'pachira', - defaultOptions: {}, + name: 'Pachira', + options: { + schema: {}, + default: {}, + }, placement: 'top', createInstance: () => { return { diff --git a/packages/frontend/src/utility/room/objects/plant.ts b/packages/frontend/src/utility/room/objects/plant.ts index f0dd275643..9bc54e73da 100644 --- a/packages/frontend/src/utility/room/objects/plant.ts +++ b/packages/frontend/src/utility/room/objects/plant.ts @@ -7,7 +7,11 @@ import { defineObject } from '../engine.js'; export const plant = defineObject({ id: 'plant', - defaultOptions: {}, + name: 'Plant', + options: { + schema: {}, + default: {}, + }, placement: 'top', createInstance: () => { return { diff --git a/packages/frontend/src/utility/room/objects/plant2.ts b/packages/frontend/src/utility/room/objects/plant2.ts index 652ddd6dc9..60264a090f 100644 --- a/packages/frontend/src/utility/room/objects/plant2.ts +++ b/packages/frontend/src/utility/room/objects/plant2.ts @@ -7,7 +7,11 @@ import { defineObject } from '../engine.js'; export const plant2 = defineObject({ id: 'plant2', - defaultOptions: {}, + name: 'Plant 2', + options: { + schema: {}, + default: {}, + }, placement: 'top', createInstance: () => { return { diff --git a/packages/frontend/src/utility/room/objects/powerStrip.ts b/packages/frontend/src/utility/room/objects/powerStrip.ts index 899fed935f..e5ad749db0 100644 --- a/packages/frontend/src/utility/room/objects/powerStrip.ts +++ b/packages/frontend/src/utility/room/objects/powerStrip.ts @@ -7,7 +7,11 @@ import { defineObject } from '../engine.js'; export const powerStrip = defineObject({ id: 'powerStrip', - defaultOptions: {}, + name: 'Power Strip', + options: { + schema: {}, + default: {}, + }, placement: 'top', createInstance: () => { return { diff --git a/packages/frontend/src/utility/room/objects/rolledUpPoster.ts b/packages/frontend/src/utility/room/objects/rolledUpPoster.ts index 7132188e95..b67eb22b52 100644 --- a/packages/frontend/src/utility/room/objects/rolledUpPoster.ts +++ b/packages/frontend/src/utility/room/objects/rolledUpPoster.ts @@ -7,7 +7,11 @@ import { defineObject } from '../engine.js'; export const rolledUpPoster = defineObject({ id: 'rolledUpPoster', - defaultOptions: {}, + name: 'Rolled-up Poster', + options: { + schema: {}, + default: {}, + }, placement: 'top', createInstance: () => { return { diff --git a/packages/frontend/src/utility/room/objects/roundRug.ts b/packages/frontend/src/utility/room/objects/roundRug.ts index 88c6466daa..8b4c1f589b 100644 --- a/packages/frontend/src/utility/room/objects/roundRug.ts +++ b/packages/frontend/src/utility/room/objects/roundRug.ts @@ -7,7 +7,11 @@ import { defineObject } from '../engine.js'; export const roundRug = defineObject({ id: 'roundRug', - defaultOptions: {}, + name: 'Round Rug', + options: { + schema: {}, + default: {}, + }, placement: 'floor', createInstance: () => { return { diff --git a/packages/frontend/src/utility/room/objects/snakeplant.ts b/packages/frontend/src/utility/room/objects/snakeplant.ts index 8cad1922c8..e0654cc92a 100644 --- a/packages/frontend/src/utility/room/objects/snakeplant.ts +++ b/packages/frontend/src/utility/room/objects/snakeplant.ts @@ -7,7 +7,11 @@ import { defineObject } from '../engine.js'; export const snakeplant = defineObject({ id: 'snakeplant', - defaultOptions: {}, + name: 'Snake Plant', + options: { + schema: {}, + default: {}, + }, placement: 'top', createInstance: () => { return { diff --git a/packages/frontend/src/utility/room/objects/steelRack.ts b/packages/frontend/src/utility/room/objects/steelRack.ts index 986dd8535c..b2d1420af5 100644 --- a/packages/frontend/src/utility/room/objects/steelRack.ts +++ b/packages/frontend/src/utility/room/objects/steelRack.ts @@ -7,7 +7,11 @@ import { defineObject } from '../engine.js'; export const steelRack = defineObject({ id: 'steelRack', - defaultOptions: {}, + name: 'Steel Rack', + options: { + schema: {}, + default: {}, + }, placement: 'floor', createInstance: () => { return { diff --git a/packages/frontend/src/utility/room/objects/tabletopCalendar.ts b/packages/frontend/src/utility/room/objects/tabletopCalendar.ts index f8a13716d1..d060bff0c1 100644 --- a/packages/frontend/src/utility/room/objects/tabletopCalendar.ts +++ b/packages/frontend/src/utility/room/objects/tabletopCalendar.ts @@ -7,7 +7,11 @@ import { defineObject } from '../engine.js'; export const tabletopCalendar = defineObject({ id: 'tabletopCalendar', - defaultOptions: {}, + name: 'Tabletop Calendar', + options: { + schema: {}, + default: {}, + }, placement: 'top', createInstance: () => { return { diff --git a/packages/frontend/src/utility/room/objects/tv.ts b/packages/frontend/src/utility/room/objects/tv.ts index 23f46c2a6d..6e46527039 100644 --- a/packages/frontend/src/utility/room/objects/tv.ts +++ b/packages/frontend/src/utility/room/objects/tv.ts @@ -7,7 +7,11 @@ import { defineObject } from '../engine.js'; export const tv = defineObject({ id: 'tv', - defaultOptions: {}, + name: 'TV', + options: { + schema: {}, + default: {}, + }, placement: 'top', createInstance: () => { return { diff --git a/packages/frontend/src/utility/room/objects/wallClock.ts b/packages/frontend/src/utility/room/objects/wallClock.ts index 5437696639..0f8a7bbd18 100644 --- a/packages/frontend/src/utility/room/objects/wallClock.ts +++ b/packages/frontend/src/utility/room/objects/wallClock.ts @@ -8,7 +8,11 @@ import { defineObject } from '../engine.js'; export const wallClock = defineObject({ id: 'wallClock', - defaultOptions: {}, + name: 'Wall Clock', + options: { + schema: {}, + default: {}, + }, placement: 'side', createInstance: ({ room, root }) => { return { diff --git a/packages/frontend/src/utility/room/objects/wallShelf.ts b/packages/frontend/src/utility/room/objects/wallShelf.ts index d72914708f..a7ec8df739 100644 --- a/packages/frontend/src/utility/room/objects/wallShelf.ts +++ b/packages/frontend/src/utility/room/objects/wallShelf.ts @@ -14,7 +14,7 @@ export const wallShelf = defineObject({ style: { type: 'enum', label: 'Style', - enum: ['A', 'B'], + enum: ['A', 'B', 'C', 'D'], }, boardStyle: { type: 'enum', @@ -37,6 +37,8 @@ export const wallShelf = defineObject({ const applyStyle = () => { const aMeshes = root.getChildMeshes().filter(m => m.name.includes('__X_VARIATION_A__')); const bMeshes = root.getChildMeshes().filter(m => m.name.includes('__X_VARIATION_B__')); + const cMeshes = root.getChildMeshes().filter(m => m.name.includes('__X_VARIATION_C__')); + const dMeshes = root.getChildMeshes().filter(m => m.name.includes('__X_VARIATION_D__')); for (const m of aMeshes) { (m as BABYLON.Mesh).setEnabled(options.style === 'A'); @@ -44,11 +46,17 @@ export const wallShelf = defineObject({ for (const m of bMeshes) { (m as BABYLON.Mesh).setEnabled(options.style === 'B'); } + for (const m of cMeshes) { + (m as BABYLON.Mesh).setEnabled(options.style === 'C'); + } + for (const m of dMeshes) { + (m as BABYLON.Mesh).setEnabled(options.style === 'D'); + } }; applyStyle(); - const bodyMesh = root.getChildMeshes().find(m => m.name.includes('__X_BOARD__')) as BABYLON.Mesh; + const bodyMesh = root.getChildMeshes().find(m => m.name.includes('__X_BODY__')) as BABYLON.Mesh; const bodyMaterial = bodyMesh.material as BABYLON.PBRMaterial; const bodyTexture = bodyMaterial.albedoTexture as BABYLON.Texture; diff --git a/packages/frontend/src/utility/room/objects/woodSoundAbsorbingPanel.ts b/packages/frontend/src/utility/room/objects/woodSoundAbsorbingPanel.ts index e94eacd50c..d9762c1fa9 100644 --- a/packages/frontend/src/utility/room/objects/woodSoundAbsorbingPanel.ts +++ b/packages/frontend/src/utility/room/objects/woodSoundAbsorbingPanel.ts @@ -7,7 +7,11 @@ import { defineObject } from '../engine.js'; export const woodSoundAbsorbingPanel = defineObject({ id: 'woodSoundAbsorbingPanel', - defaultOptions: {}, + name: 'Wood Sound Absorbing Panel', + options: { + schema: {}, + default: {}, + }, placement: 'side', createInstance: () => { return {