1
0
mirror of https://github.com/misskey-dev/misskey.git synced 2026-05-13 16:25:44 +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 = [];
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;
}

View File

@@ -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();