mirror of
https://github.com/overte-org/overte.git
synced 2025-04-08 07:12:40 +02:00
move undo edits after creates/deletes
This commit is contained in:
parent
78256fb5bb
commit
d63c733b85
1 changed files with 36 additions and 34 deletions
|
@ -2129,9 +2129,32 @@ var DELETED_ENTITY_MAP = {};
|
|||
|
||||
function applyEntityProperties(data) {
|
||||
var editEntities = data.editEntities;
|
||||
var createEntities = data.createEntities;
|
||||
var deleteEntities = data.deleteEntities;
|
||||
var selectedEntityIDs = [];
|
||||
var selectEdits = data.createEntities.length === 0 || !data.selectCreated;
|
||||
var selectEdits = createEntities.length === 0 || !data.selectCreated;
|
||||
var i, entityID, entityProperties;
|
||||
for (i = 0; i < createEntities.length; i++) {
|
||||
entityID = createEntities[i].entityID;
|
||||
entityProperties = createEntities[i].properties;
|
||||
var newEntityID = Entities.addEntity(entityProperties);
|
||||
recursiveAdd(newEntityID, createEntities[i]);
|
||||
DELETED_ENTITY_MAP[entityID] = newEntityID;
|
||||
if (data.selectCreated) {
|
||||
selectedEntityIDs.push(newEntityID);
|
||||
}
|
||||
}
|
||||
for (i = 0; i < deleteEntities.length; i++) {
|
||||
entityID = deleteEntities[i].entityID;
|
||||
if (DELETED_ENTITY_MAP[entityID] !== undefined) {
|
||||
entityID = DELETED_ENTITY_MAP[entityID];
|
||||
}
|
||||
Entities.deleteEntity(entityID);
|
||||
var index = selectedEntityIDs.indexOf(entityID);
|
||||
if (index >= 0) {
|
||||
selectedEntityIDs.splice(index, 1);
|
||||
}
|
||||
}
|
||||
for (i = 0; i < editEntities.length; i++) {
|
||||
entityID = editEntities[i].entityID;
|
||||
if (DELETED_ENTITY_MAP[entityID] !== undefined) {
|
||||
|
@ -2145,27 +2168,6 @@ function applyEntityProperties(data) {
|
|||
selectedEntityIDs.push(entityID);
|
||||
}
|
||||
}
|
||||
for (i = 0; i < data.createEntities.length; i++) {
|
||||
entityID = data.createEntities[i].entityID;
|
||||
entityProperties = data.createEntities[i].properties;
|
||||
var newEntityID = Entities.addEntity(entityProperties);
|
||||
recursiveAdd(newEntityID, data.createEntities[i]);
|
||||
DELETED_ENTITY_MAP[entityID] = newEntityID;
|
||||
if (data.selectCreated) {
|
||||
selectedEntityIDs.push(newEntityID);
|
||||
}
|
||||
}
|
||||
for (i = 0; i < data.deleteEntities.length; i++) {
|
||||
entityID = data.deleteEntities[i].entityID;
|
||||
if (DELETED_ENTITY_MAP[entityID] !== undefined) {
|
||||
entityID = DELETED_ENTITY_MAP[entityID];
|
||||
}
|
||||
Entities.deleteEntity(entityID);
|
||||
var index = selectedEntityIDs.indexOf(entityID);
|
||||
if (index >= 0) {
|
||||
selectedEntityIDs.splice(index, 1);
|
||||
}
|
||||
}
|
||||
|
||||
// We might be getting an undo while edit.js is disabled. If that is the case, don't set
|
||||
// our selections, causing the edit widgets to display.
|
||||
|
@ -2523,18 +2525,18 @@ var PropertiesTool = function (opts) {
|
|||
propertyRanges: propertyRanges,
|
||||
});
|
||||
} else if (data.type === "materialTargetRequest") {
|
||||
var properties = Entities.getEntityProperties(data.entityID, ["type", "parentID"]);
|
||||
var parentModel = properties.parentID !== Uuid.NULL &&
|
||||
Entities.getEntityProperties(properties.parentID, ["type"]).type === "Model";
|
||||
var parentModelData;
|
||||
if (properties.type === "Material" && parentModel) {
|
||||
parentModelData = Graphics.getModel(properties.parentID);
|
||||
}
|
||||
emitScriptEvent({
|
||||
type: 'materialTargetReply',
|
||||
materialTargetData: parentModelData,
|
||||
});
|
||||
}
|
||||
var properties = Entities.getEntityProperties(data.entityID, ["type", "parentID"]);
|
||||
var parentModel = properties.parentID !== Uuid.NULL &&
|
||||
Entities.getEntityProperties(properties.parentID, ["type"]).type === "Model";
|
||||
var parentModelData;
|
||||
if (properties.type === "Material" && parentModel) {
|
||||
parentModelData = Graphics.getModel(properties.parentID);
|
||||
}
|
||||
emitScriptEvent({
|
||||
type: 'materialTargetReply',
|
||||
materialTargetData: parentModelData,
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
HMD.displayModeChanged.connect(function() {
|
||||
|
|
Loading…
Reference in a new issue