This commit is contained in:
David Back 2018-07-05 12:07:13 -07:00
parent 25d55b9cc5
commit 1cc79f0e7c

View file

@ -183,10 +183,10 @@ SelectionManager = (function() {
that.duplicateSelection = function() { that.duplicateSelection = function() {
var duplicatedEntityIDs = []; var duplicatedEntityIDs = [];
var entityIDsNeedingNewParent = []; var duplicatedChildrenWithOldParents = [];
var oldEntityToNewEntityID = []; var originalEntityToNewEntityID = [];
Object.keys(that.savedProperties).forEach(function(otherEntityID) { Object.keys(that.savedProperties).forEach(function(originalEntityID) {
var properties = that.savedProperties[otherEntityID]; var properties = that.savedProperties[originalEntityID];
if (!properties.locked && (!properties.clientOnly || properties.owningAvatarID === MyAvatar.sessionUUID)) { if (!properties.locked && (!properties.clientOnly || properties.owningAvatarID === MyAvatar.sessionUUID)) {
var newEntityID = Entities.addEntity(properties); var newEntityID = Entities.addEntity(properties);
duplicatedEntityIDs.push({ duplicatedEntityIDs.push({
@ -194,18 +194,18 @@ SelectionManager = (function() {
properties: properties properties: properties
}); });
if (properties.parentID !== Uuid.NULL) { if (properties.parentID !== Uuid.NULL) {
entityIDsNeedingNewParent[newEntityID] = properties.parentID; duplicatedChildrenWithOldParents[newEntityID] = properties.parentID;
} }
oldEntityToNewEntityID[otherEntityID] = newEntityID; originalEntityToNewEntityID[originalEntityID] = newEntityID;
} }
}); });
Object.keys(entityIDsNeedingNewParent).forEach(function(entityIDNeedingNewParent) { Object.keys(duplicatedChildrenWithOldParents).forEach(function(childIDNeedingNewParent) {
var oldParentID = entityIDsNeedingNewParent[entityIDNeedingNewParent]; var originalParentID = duplicatedChildrenWithOldParents[childIDNeedingNewParent];
var newParentID = oldEntityToNewEntityID[oldParentID]; var newParentID = originalEntityToNewEntityID[originalParentID];
Entities.editEntity(entityIDNeedingNewParent, { parentID: newParentID }); Entities.editEntity(childIDNeedingNewParent, { parentID: newParentID });
for (var i = 0; i < duplicatedEntityIDs.length; i++) { for (var i = 0; i < duplicatedEntityIDs.length; i++) {
var duplicatedEntity = duplicatedEntityIDs[i]; var duplicatedEntity = duplicatedEntityIDs[i];
if (duplicatedEntity.entityID === entityIDNeedingNewParent) { if (duplicatedEntity.entityID === childIDNeedingNewParent) {
duplicatedEntity.properties.parentID = newParentID; duplicatedEntity.properties.parentID = newParentID;
} }
} }