mirror of
https://github.com/overte-org/overte.git
synced 2025-04-20 03:44:02 +02:00
also copy unselected children
This commit is contained in:
parent
1cc79f0e7c
commit
fbe670d8c0
1 changed files with 20 additions and 1 deletions
|
@ -182,11 +182,28 @@ SelectionManager = (function() {
|
|||
};
|
||||
|
||||
that.duplicateSelection = function() {
|
||||
var entitiesToDuplicate = [];
|
||||
var duplicatedEntityIDs = [];
|
||||
var duplicatedChildrenWithOldParents = [];
|
||||
var originalEntityToNewEntityID = [];
|
||||
|
||||
Object.keys(that.savedProperties).forEach(function(originalEntityID) {
|
||||
entitiesToDuplicate.push(originalEntityID);
|
||||
var children = Entities.getChildrenIDs(originalEntityID);
|
||||
for (var i = 0; i < children.length; i++) {
|
||||
var childID = children[i];
|
||||
if (entitiesToDuplicate.indexOf(childID) < 0) {
|
||||
entitiesToDuplicate.push(childID);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
for (var i = 0; i < entitiesToDuplicate.length; i++) {
|
||||
var originalEntityID = entitiesToDuplicate[i];
|
||||
var properties = that.savedProperties[originalEntityID];
|
||||
if (properties === undefined) {
|
||||
properties = Entities.getEntityProperties(originalEntityID);
|
||||
}
|
||||
if (!properties.locked && (!properties.clientOnly || properties.owningAvatarID === MyAvatar.sessionUUID)) {
|
||||
var newEntityID = Entities.addEntity(properties);
|
||||
duplicatedEntityIDs.push({
|
||||
|
@ -198,7 +215,8 @@ SelectionManager = (function() {
|
|||
}
|
||||
originalEntityToNewEntityID[originalEntityID] = newEntityID;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Object.keys(duplicatedChildrenWithOldParents).forEach(function(childIDNeedingNewParent) {
|
||||
var originalParentID = duplicatedChildrenWithOldParents[childIDNeedingNewParent];
|
||||
var newParentID = originalEntityToNewEntityID[originalParentID];
|
||||
|
@ -210,6 +228,7 @@ SelectionManager = (function() {
|
|||
}
|
||||
}
|
||||
});
|
||||
|
||||
return duplicatedEntityIDs;
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue