comments, fix doubles in list, fix re-parenting to 0

This commit is contained in:
David Back 2018-07-05 13:10:56 -07:00
parent fbe670d8c0
commit 2bcc96269e

View file

@ -187,8 +187,11 @@ SelectionManager = (function() {
var duplicatedChildrenWithOldParents = []; var duplicatedChildrenWithOldParents = [];
var originalEntityToNewEntityID = []; var originalEntityToNewEntityID = [];
// build list of entities to duplicate by including any unselected children of selected parent entities
Object.keys(that.savedProperties).forEach(function(originalEntityID) { Object.keys(that.savedProperties).forEach(function(originalEntityID) {
entitiesToDuplicate.push(originalEntityID); if (entitiesToDuplicate.indexOf(originalEntityID) < 0) {
entitiesToDuplicate.push(originalEntityID);
}
var children = Entities.getChildrenIDs(originalEntityID); var children = Entities.getChildrenIDs(originalEntityID);
for (var i = 0; i < children.length; i++) { for (var i = 0; i < children.length; i++) {
var childID = children[i]; var childID = children[i];
@ -198,6 +201,7 @@ SelectionManager = (function() {
} }
}); });
// duplicate entities from above and store their original to new entity mappings and children needing re-parenting
for (var i = 0; i < entitiesToDuplicate.length; i++) { for (var i = 0; i < entitiesToDuplicate.length; i++) {
var originalEntityID = entitiesToDuplicate[i]; var originalEntityID = entitiesToDuplicate[i];
var properties = that.savedProperties[originalEntityID]; var properties = that.savedProperties[originalEntityID];
@ -217,14 +221,17 @@ SelectionManager = (function() {
} }
} }
// re-parent duplicated children to the duplicate entities of their original parents (if they were duplicated)
Object.keys(duplicatedChildrenWithOldParents).forEach(function(childIDNeedingNewParent) { Object.keys(duplicatedChildrenWithOldParents).forEach(function(childIDNeedingNewParent) {
var originalParentID = duplicatedChildrenWithOldParents[childIDNeedingNewParent]; var originalParentID = duplicatedChildrenWithOldParents[childIDNeedingNewParent];
var newParentID = originalEntityToNewEntityID[originalParentID]; var newParentID = originalEntityToNewEntityID[originalParentID];
Entities.editEntity(childIDNeedingNewParent, { parentID: newParentID }); if (newParentID) {
for (var i = 0; i < duplicatedEntityIDs.length; i++) { Entities.editEntity(childIDNeedingNewParent, { parentID: newParentID });
var duplicatedEntity = duplicatedEntityIDs[i]; for (var i = 0; i < duplicatedEntityIDs.length; i++) {
if (duplicatedEntity.entityID === childIDNeedingNewParent) { var duplicatedEntity = duplicatedEntityIDs[i];
duplicatedEntity.properties.parentID = newParentID; if (duplicatedEntity.entityID === childIDNeedingNewParent) {
duplicatedEntity.properties.parentID = newParentID;
}
} }
} }
}); });