mirror of
https://github.com/misskey-dev/misskey.git
synced 2026-05-23 21:34:10 +02:00
wip
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
Reference in New Issue
Block a user