Update cleanupSceneForDeletedAsset to handle NPC entities with deleted model assets

This commit is contained in:
2026-04-13 16:18:01 +02:00
parent 9ed75fb5da
commit e8a3f5a189

View File

@@ -59,6 +59,8 @@ function cleanupSceneForDeletedAsset(
if (asset.kind === "model") {
const remainingModelInstances: ProjectScene["modelInstances"] = {};
const updatedEntities: ProjectScene["entities"] = {};
let didChangeEntities = false;
for (const [modelInstanceId, modelInstance] of Object.entries(
scene.modelInstances
@@ -74,6 +76,23 @@ function cleanupSceneForDeletedAsset(
if (removedModelInstanceIds.size > 0) {
nextModelInstances = remainingModelInstances;
}
for (const [entityId, entity] of Object.entries(scene.entities)) {
if (entity.kind === "npc" && entity.modelAssetId === asset.id) {
updatedEntities[entityId] = {
...entity,
modelAssetId: null
};
didChangeEntities = true;
continue;
}
updatedEntities[entityId] = entity;
}
if (didChangeEntities) {
nextEntities = updatedEntities;
}
}
if (asset.kind === "audio") {