1
0
mirror of https://github.com/misskey-dev/misskey.git synced 2026-05-23 21:34:10 +02:00
This commit is contained in:
syuilo
2026-04-03 16:13:42 +09:00
parent 654c2c5b05
commit df092dd120
2 changed files with 14 additions and 12 deletions

View File

@@ -194,12 +194,12 @@ class ModelManager {
} }
this.bakedMeshes = []; 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[]; const _toMerge = [] as BABYLON.Mesh[];
for (const mesh of childMeshes) { for (const mesh of childMeshes) {
let fixedMesh = mesh; let fixedMesh = mesh;
fixedMesh.isVisible = false; fixedMesh.setEnabled(false);
if (mesh instanceof BABYLON.InstancedMesh) { if (mesh instanceof BABYLON.InstancedMesh) {
const sourceMesh = mesh.sourceMesh; const sourceMesh = mesh.sourceMesh;
@@ -214,7 +214,7 @@ class ModelManager {
} }
newMesh.scaling = mesh.scaling.clone(); newMesh.scaling = mesh.scaling.clone();
newMesh.parent = mesh.parent; newMesh.parent = mesh.parent;
newMesh.isVisible = false; newMesh.setEnabled(false);
fixedMesh = newMesh; fixedMesh = newMesh;
} }

View File

@@ -33,25 +33,27 @@ export const wallShelf = defineObject({
}, },
}, },
placement: 'side', placement: 'side',
createInstance: ({ model, options, root }) => { createInstance: ({ model, options }) => {
const applyStyle = () => { const applyStyle = () => {
const aMeshes = root.getChildMeshes().filter(m => m.name.includes('__X_VARIATION_A__')); const aMeshes = model.findMeshes('__X_VARIATION_A__');
const bMeshes = root.getChildMeshes().filter(m => m.name.includes('__X_VARIATION_B__')); const bMeshes = model.findMeshes('__X_VARIATION_B__');
const cMeshes = root.getChildMeshes().filter(m => m.name.includes('__X_VARIATION_C__')); const cMeshes = model.findMeshes('__X_VARIATION_C__');
const dMeshes = root.getChildMeshes().filter(m => m.name.includes('__X_VARIATION_D__')); const dMeshes = model.findMeshes('__X_VARIATION_D__');
for (const m of aMeshes) { for (const m of aMeshes) {
(m as BABYLON.Mesh).setEnabled(options.style === 'A'); m.isVisible = options.style === 'A';
} }
for (const m of bMeshes) { for (const m of bMeshes) {
(m as BABYLON.Mesh).setEnabled(options.style === 'B'); m.isVisible = options.style === 'B';
} }
for (const m of cMeshes) { for (const m of cMeshes) {
(m as BABYLON.Mesh).setEnabled(options.style === 'C'); m.isVisible = options.style === 'C';
} }
for (const m of dMeshes) { for (const m of dMeshes) {
(m as BABYLON.Mesh).setEnabled(options.style === 'D'); m.isVisible = options.style === 'D';
} }
model.updated();
}; };
applyStyle(); applyStyle();