diff --git a/scripts/system/edit.js b/scripts/system/edit.js index 0346e1c7a1..92cd103c85 100644 --- a/scripts/system/edit.js +++ b/scripts/system/edit.js @@ -2129,9 +2129,32 @@ var DELETED_ENTITY_MAP = {}; function applyEntityProperties(data) { var editEntities = data.editEntities; + var createEntities = data.createEntities; + var deleteEntities = data.deleteEntities; var selectedEntityIDs = []; - var selectEdits = data.createEntities.length === 0 || !data.selectCreated; + var selectEdits = createEntities.length === 0 || !data.selectCreated; var i, entityID, entityProperties; + for (i = 0; i < createEntities.length; i++) { + entityID = createEntities[i].entityID; + entityProperties = createEntities[i].properties; + var newEntityID = Entities.addEntity(entityProperties); + recursiveAdd(newEntityID, createEntities[i]); + DELETED_ENTITY_MAP[entityID] = newEntityID; + if (data.selectCreated) { + selectedEntityIDs.push(newEntityID); + } + } + for (i = 0; i < deleteEntities.length; i++) { + entityID = deleteEntities[i].entityID; + if (DELETED_ENTITY_MAP[entityID] !== undefined) { + entityID = DELETED_ENTITY_MAP[entityID]; + } + Entities.deleteEntity(entityID); + var index = selectedEntityIDs.indexOf(entityID); + if (index >= 0) { + selectedEntityIDs.splice(index, 1); + } + } for (i = 0; i < editEntities.length; i++) { entityID = editEntities[i].entityID; if (DELETED_ENTITY_MAP[entityID] !== undefined) { @@ -2145,27 +2168,6 @@ function applyEntityProperties(data) { selectedEntityIDs.push(entityID); } } - for (i = 0; i < data.createEntities.length; i++) { - entityID = data.createEntities[i].entityID; - entityProperties = data.createEntities[i].properties; - var newEntityID = Entities.addEntity(entityProperties); - recursiveAdd(newEntityID, data.createEntities[i]); - DELETED_ENTITY_MAP[entityID] = newEntityID; - if (data.selectCreated) { - selectedEntityIDs.push(newEntityID); - } - } - for (i = 0; i < data.deleteEntities.length; i++) { - entityID = data.deleteEntities[i].entityID; - if (DELETED_ENTITY_MAP[entityID] !== undefined) { - entityID = DELETED_ENTITY_MAP[entityID]; - } - Entities.deleteEntity(entityID); - var index = selectedEntityIDs.indexOf(entityID); - if (index >= 0) { - selectedEntityIDs.splice(index, 1); - } - } // We might be getting an undo while edit.js is disabled. If that is the case, don't set // our selections, causing the edit widgets to display.