diff --git a/src/assets/delete-project-asset.ts b/src/assets/delete-project-asset.ts index fdb90420..1b1a9e6e 100644 --- a/src/assets/delete-project-asset.ts +++ b/src/assets/delete-project-asset.ts @@ -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") {