From 5f6e6082071998a6f5bbfe036fc6bd93f386bdd2 Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Tue, 19 Jul 2016 11:23:21 -0700 Subject: [PATCH] don't overwrite physical properties with those from the entity during editEntity -- only set those that the script didn't. --- libraries/entities/src/EntityItem.cpp | 20 +++++++++++++++----- libraries/entities/src/EntityTree.cpp | 11 ++++------- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/libraries/entities/src/EntityItem.cpp b/libraries/entities/src/EntityItem.cpp index f0a4d40860..f774d52274 100644 --- a/libraries/entities/src/EntityItem.cpp +++ b/libraries/entities/src/EntityItem.cpp @@ -1211,11 +1211,21 @@ EntityItemProperties EntityItem::getProperties(EntityPropertyFlags desiredProper void EntityItem::getAllTerseUpdateProperties(EntityItemProperties& properties) const { // a TerseUpdate includes the transform and its derivatives - properties._position = getLocalPosition(); - properties._velocity = getLocalVelocity(); - properties._rotation = getLocalOrientation(); - properties._angularVelocity = getLocalAngularVelocity(); - properties._acceleration = _acceleration; + if (!properties._positionChanged) { + properties._position = getLocalPosition(); + } + if (!properties._velocityChanged) { + properties._velocity = getLocalVelocity(); + } + if (!properties._rotationChanged) { + properties._rotation = getLocalOrientation(); + } + if (!properties._angularVelocityChanged) { + properties._angularVelocity = getLocalAngularVelocity(); + } + if (!properties._accelerationChanged) { + properties._acceleration = _acceleration; + } properties._positionChanged = true; properties._velocityChanged = true; diff --git a/libraries/entities/src/EntityTree.cpp b/libraries/entities/src/EntityTree.cpp index ef0401ceaf..848d473321 100644 --- a/libraries/entities/src/EntityTree.cpp +++ b/libraries/entities/src/EntityTree.cpp @@ -723,13 +723,10 @@ void EntityTree::fixupTerseEditLogging(EntityItemProperties& properties, QList= 0) { glm::vec3 value = properties.getVelocity(); - QString changeHint = "0"; - if (value.x + value.y + value.z > 0) { - changeHint = "+"; - } else if (value.x + value.y + value.z < 0) { - changeHint = "-"; - } - changedProperties[index] = QString("velocity:") + changeHint; + changedProperties[index] = QString("velocity:") + + QString::number((int)value.x) + "," + + QString::number((int)value.y) + "," + + QString::number((int)value.z); } }