mirror of
https://github.com/overte-org/overte.git
synced 2025-08-09 11:48:09 +02:00
reparent after duplication
This commit is contained in:
parent
01c4b57d11
commit
40fec8a318
1 changed files with 19 additions and 1 deletions
|
@ -183,15 +183,33 @@ SelectionManager = (function() {
|
||||||
|
|
||||||
that.duplicateSelection = function() {
|
that.duplicateSelection = function() {
|
||||||
var duplicatedEntityIDs = [];
|
var duplicatedEntityIDs = [];
|
||||||
|
var entityIDsNeedingNewParent = [];
|
||||||
|
var oldEntityToNewEntityID = [];
|
||||||
Object.keys(that.savedProperties).forEach(function(otherEntityID) {
|
Object.keys(that.savedProperties).forEach(function(otherEntityID) {
|
||||||
var properties = that.savedProperties[otherEntityID];
|
var properties = that.savedProperties[otherEntityID];
|
||||||
if (!properties.locked && (!properties.clientOnly || properties.owningAvatarID === MyAvatar.sessionUUID)) {
|
if (!properties.locked && (!properties.clientOnly || properties.owningAvatarID === MyAvatar.sessionUUID)) {
|
||||||
|
var newEntityID = Entities.addEntity(properties);
|
||||||
duplicatedEntityIDs.push({
|
duplicatedEntityIDs.push({
|
||||||
entityID: Entities.addEntity(properties),
|
entityID: newEntityID,
|
||||||
properties: properties
|
properties: properties
|
||||||
});
|
});
|
||||||
|
if (properties.parentID !== Uuid.NULL) {
|
||||||
|
entityIDsNeedingNewParent[newEntityID] = properties.parentID;
|
||||||
|
}
|
||||||
|
oldEntityToNewEntityID[otherEntityID] = newEntityID;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
Object.keys(entityIDsNeedingNewParent).forEach(function(entityIDNeedingNewParent) {
|
||||||
|
var oldParentID = entityIDsNeedingNewParent[entityIDNeedingNewParent];
|
||||||
|
var newParentID = oldEntityToNewEntityID[oldParentID];
|
||||||
|
Entities.editEntity(entityIDNeedingNewParent, { parentID: newParentID });
|
||||||
|
for (var i = 0; i < duplicatedEntityIDs.length; i++) {
|
||||||
|
var duplicatedEntity = duplicatedEntityIDs[i];
|
||||||
|
if (duplicatedEntity.entityID === entityIDNeedingNewParent) {
|
||||||
|
duplicatedEntity.properties.parentID = newParentID;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
return duplicatedEntityIDs;
|
return duplicatedEntityIDs;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue