From df092dd120b568b4ec72e91691844164befef12b Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Fri, 3 Apr 2026 16:13:42 +0900 Subject: [PATCH] wip --- packages/frontend/src/utility/room/engine.ts | 6 +++--- .../src/utility/room/objects/wallShelf.ts | 20 ++++++++++--------- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/packages/frontend/src/utility/room/engine.ts b/packages/frontend/src/utility/room/engine.ts index e292665d97..ed62a9acd3 100644 --- a/packages/frontend/src/utility/room/engine.ts +++ b/packages/frontend/src/utility/room/engine.ts @@ -194,12 +194,12 @@ class ModelManager { } this.bakedMeshes = []; - const childMeshes = this.root.getChildMeshes().filter(m => !m.name.includes('__TOP__') && !m.name.includes('__SIDE__') && !m.name.includes('__COLLISION__')); + const childMeshes = this.root.getChildMeshes().filter(m => m.isVisible && !m.name.includes('__TOP__') && !m.name.includes('__SIDE__') && !m.name.includes('__COLLISION__')); const _toMerge = [] as BABYLON.Mesh[]; for (const mesh of childMeshes) { let fixedMesh = mesh; - fixedMesh.isVisible = false; + fixedMesh.setEnabled(false); if (mesh instanceof BABYLON.InstancedMesh) { const sourceMesh = mesh.sourceMesh; @@ -214,7 +214,7 @@ class ModelManager { } newMesh.scaling = mesh.scaling.clone(); newMesh.parent = mesh.parent; - newMesh.isVisible = false; + newMesh.setEnabled(false); fixedMesh = newMesh; } diff --git a/packages/frontend/src/utility/room/objects/wallShelf.ts b/packages/frontend/src/utility/room/objects/wallShelf.ts index d4278a377e..6ef3c4c3ff 100644 --- a/packages/frontend/src/utility/room/objects/wallShelf.ts +++ b/packages/frontend/src/utility/room/objects/wallShelf.ts @@ -33,25 +33,27 @@ export const wallShelf = defineObject({ }, }, placement: 'side', - createInstance: ({ model, options, root }) => { + createInstance: ({ model, options }) => { 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__')); + const aMeshes = model.findMeshes('__X_VARIATION_A__'); + const bMeshes = model.findMeshes('__X_VARIATION_B__'); + const cMeshes = model.findMeshes('__X_VARIATION_C__'); + const dMeshes = model.findMeshes('__X_VARIATION_D__'); for (const m of aMeshes) { - (m as BABYLON.Mesh).setEnabled(options.style === 'A'); + m.isVisible = options.style === 'A'; } for (const m of bMeshes) { - (m as BABYLON.Mesh).setEnabled(options.style === 'B'); + m.isVisible = options.style === 'B'; } for (const m of cMeshes) { - (m as BABYLON.Mesh).setEnabled(options.style === 'C'); + m.isVisible = options.style === 'C'; } for (const m of dMeshes) { - (m as BABYLON.Mesh).setEnabled(options.style === 'D'); + m.isVisible = options.style === 'D'; } + + model.updated(); }; applyStyle();