mirror of
https://github.com/overte-org/overte.git
synced 2025-08-11 06:53:00 +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() {
|
that.duplicateSelection = function() {
|
||||||
|
var entitiesToDuplicate = [];
|
||||||
var duplicatedEntityIDs = [];
|
var duplicatedEntityIDs = [];
|
||||||
var duplicatedChildrenWithOldParents = [];
|
var duplicatedChildrenWithOldParents = [];
|
||||||
var originalEntityToNewEntityID = [];
|
var originalEntityToNewEntityID = [];
|
||||||
|
|
||||||
Object.keys(that.savedProperties).forEach(function(originalEntityID) {
|
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];
|
var properties = that.savedProperties[originalEntityID];
|
||||||
|
if (properties === undefined) {
|
||||||
|
properties = Entities.getEntityProperties(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({
|
||||||
|
@ -198,7 +215,8 @@ SelectionManager = (function() {
|
||||||
}
|
}
|
||||||
originalEntityToNewEntityID[originalEntityID] = newEntityID;
|
originalEntityToNewEntityID[originalEntityID] = newEntityID;
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
|
|
||||||
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];
|
||||||
|
@ -210,6 +228,7 @@ SelectionManager = (function() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
return duplicatedEntityIDs;
|
return duplicatedEntityIDs;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue