diff --git a/libraries/entities/src/AnimationPropertyGroup.cpp b/libraries/entities/src/AnimationPropertyGroup.cpp index d1da465079..f9d8c07443 100644 --- a/libraries/entities/src/AnimationPropertyGroup.cpp +++ b/libraries/entities/src/AnimationPropertyGroup.cpp @@ -163,6 +163,19 @@ void AnimationPropertyGroup::debugDump() const { qDebug() << "currentFrame:" << getCurrentFrame() << " has changed:" << currentFrameChanged(); } +void AnimationPropertyGroup::listChangedProperties(QList& out) { + if (urlChanged()) { + out << "animation-url"; + } + if (fpsChanged()) { + out << "animation-fps"; + } + if (currentFrameChanged()) { + out << "animation-currentFrame"; + } +} + + bool AnimationPropertyGroup::appendToEditPacket(OctreePacketData* packetData, EntityPropertyFlags& requestedProperties, EntityPropertyFlags& propertyFlags, diff --git a/libraries/entities/src/AnimationPropertyGroup.h b/libraries/entities/src/AnimationPropertyGroup.h index d0d218f4b3..8c40b0c036 100644 --- a/libraries/entities/src/AnimationPropertyGroup.h +++ b/libraries/entities/src/AnimationPropertyGroup.h @@ -37,6 +37,7 @@ public: virtual void copyToScriptValue(const EntityPropertyFlags& desiredProperties, QScriptValue& properties, QScriptEngine* engine, bool skipDefaults, EntityItemProperties& defaultEntityProperties) const; virtual void copyFromScriptValue(const QScriptValue& object, bool& _defaultSettings); virtual void debugDump() const; + virtual void listChangedProperties(QList& out); virtual bool appendToEditPacket(OctreePacketData* packetData, EntityPropertyFlags& requestedProperties, diff --git a/libraries/entities/src/AtmospherePropertyGroup.cpp b/libraries/entities/src/AtmospherePropertyGroup.cpp index 090fdb6c6f..8e7a5a5262 100644 --- a/libraries/entities/src/AtmospherePropertyGroup.cpp +++ b/libraries/entities/src/AtmospherePropertyGroup.cpp @@ -54,6 +54,30 @@ void AtmospherePropertyGroup::debugDump() const { qDebug() << " Has Stars:" << getHasStars() << " has changed:" << hasStarsChanged(); } +void AtmospherePropertyGroup::listChangedProperties(QList& out) { + if (centerChanged()) { + out << "center"; + } + if (innerRadiusChanged()) { + out << "innerRadius"; + } + if (outerRadiusChanged()) { + out << "outerRadius"; + } + if (mieScatteringChanged()) { + out << "mieScattering"; + } + if (rayleighScatteringChanged()) { + out << "rayleighScattering"; + } + if (scatteringWavelengthsChanged()) { + out << "scatteringWavelengths"; + } + if (hasStarsChanged()) { + out << "hasStars"; + } +} + bool AtmospherePropertyGroup::appendToEditPacket(OctreePacketData* packetData, EntityPropertyFlags& requestedProperties, EntityPropertyFlags& propertyFlags, diff --git a/libraries/entities/src/AtmospherePropertyGroup.h b/libraries/entities/src/AtmospherePropertyGroup.h index 661d91087b..1d43c848b8 100644 --- a/libraries/entities/src/AtmospherePropertyGroup.h +++ b/libraries/entities/src/AtmospherePropertyGroup.h @@ -53,6 +53,7 @@ public: virtual void copyToScriptValue(const EntityPropertyFlags& desiredProperties, QScriptValue& properties, QScriptEngine* engine, bool skipDefaults, EntityItemProperties& defaultEntityProperties) const; virtual void copyFromScriptValue(const QScriptValue& object, bool& _defaultSettings); virtual void debugDump() const; + virtual void listChangedProperties(QList& out); virtual bool appendToEditPacket(OctreePacketData* packetData, EntityPropertyFlags& requestedProperties, @@ -87,7 +88,7 @@ public: EntityPropertyFlags& propertyFlags, bool overwriteLocalData, bool& somethingChanged); - + static const glm::vec3 DEFAULT_CENTER; static const float DEFAULT_INNER_RADIUS; static const float DEFAULT_OUTER_RADIUS; diff --git a/libraries/entities/src/EntityItemProperties.cpp b/libraries/entities/src/EntityItemProperties.cpp index 4cbf7a043c..19c8f779b4 100644 --- a/libraries/entities/src/EntityItemProperties.cpp +++ b/libraries/entities/src/EntityItemProperties.cpp @@ -1519,3 +1519,254 @@ void EntityItemProperties::setSimulationOwner(const QByteArray& data) { _simulationOwnerChanged = true; } } + +QList EntityItemProperties::listChangedProperties() { + QList out; + if (containsPositionChange()) { + out += "posistion"; + } + if (dimensionsChanged()) { + out += "dimensions"; + } + if (velocityChanged()) { + out += "velocity"; + } + if (nameChanged()) { + out += "name"; + } + if (visibleChanged()) { + out += "visible"; + } + if (rotationChanged()) { + out += "rotation"; + } + if (densityChanged()) { + out += "density"; + } + if (gravityChanged()) { + out += "gravity"; + } + if (accelerationChanged()) { + out += "acceleration"; + } + if (dampingChanged()) { + out += "damping"; + } + if (restitutionChanged()) { + out += "restitution"; + } + if (frictionChanged()) { + out += "friction"; + } + if (lifetimeChanged()) { + out += "lifetime"; + } + if (scriptChanged()) { + out += "script"; + } + if (scriptTimestampChanged()) { + out += "scriptTimestamp"; + } + if (collisionSoundURLChanged()) { + out += "collisionSoundURL"; + } + if (colorChanged()) { + out += "color"; + } + if (colorSpreadChanged()) { + out += "colorSpread"; + } + if (colorStartChanged()) { + out += "colorStart"; + } + if (colorFinishChanged()) { + out += "colorFinish"; + } + if (alphaChanged()) { + out += "alpha"; + } + if (alphaSpreadChanged()) { + out += "alphaSpread"; + } + if (alphaStartChanged()) { + out += "alphaStart"; + } + if (alphaFinishChanged()) { + out += "alphaFinish"; + } + if (modelURLChanged()) { + out += "modelURL"; + } + if (compoundShapeURLChanged()) { + out += "compoundShapeURL"; + } + if (registrationPointChanged()) { + out += "registrationPoint"; + } + if (angularVelocityChanged()) { + out += "angularVelocity"; + } + if (angularDampingChanged()) { + out += "angularDamping"; + } + if (ignoreForCollisionsChanged()) { + out += "ignoreForCollisions"; + } + if (collisionsWillMoveChanged()) { + out += "collisionsWillMove"; + } + if (isSpotlightChanged()) { + out += "isSpotlight"; + } + if (intensityChanged()) { + out += "intensity"; + } + if (exponentChanged()) { + out += "exponent"; + } + if (cutoffChanged()) { + out += "cutoff"; + } + if (lockedChanged()) { + out += "locked"; + } + if (texturesChanged()) { + out += "textures"; + } + if (userDataChanged()) { + out += "userData"; + } + if (simulationOwnerChanged()) { + out += "simulationOwner"; + } + if (textChanged()) { + out += "text"; + } + if (lineHeightChanged()) { + out += "lineHeight"; + } + if (textColorChanged()) { + out += "textColor"; + } + if (backgroundColorChanged()) { + out += "backgroundColor"; + } + if (shapeTypeChanged()) { + out += "shapeType"; + } + if (maxParticlesChanged()) { + out += "maxParticles"; + } + if (lifespanChanged()) { + out += "lifespan"; + } + if (isEmittingChanged()) { + out += "isEmitting"; + } + if (emitRateChanged()) { + out += "emitRate"; + } + if (emitSpeedChanged()) { + out += "emitSpeed"; + } + if (speedSpreadChanged()) { + out += "speedSpread"; + } + if (emitOrientationChanged()) { + out += "emitOrientation"; + } + if (emitDimensionsChanged()) { + out += "emitDimensions"; + } + if (emitRadiusStartChanged()) { + out += "emitRadiusStart"; + } + if (polarStartChanged()) { + out += "polarStart"; + } + if (polarFinishChanged()) { + out += "polarFinish"; + } + if (azimuthStartChanged()) { + out += "azimuthStart"; + } + if (azimuthFinishChanged()) { + out += "azimuthFinish"; + } + if (emitAccelerationChanged()) { + out += "emitAcceleration"; + } + if (accelerationSpreadChanged()) { + out += "accelerationSpread"; + } + if (particleRadiusChanged()) { + out += "particleRadius"; + } + if (radiusSpreadChanged()) { + out += "radiusSpread"; + } + if (radiusStartChanged()) { + out += "radiusStart"; + } + if (radiusFinishChanged()) { + out += "radiusFinish"; + } + if (marketplaceIDChanged()) { + out += "marketplaceID"; + } + if (backgroundModeChanged()) { + out += "backgroundMode"; + } + if (voxelVolumeSizeChanged()) { + out += "voxelVolumeSize"; + } + if (voxelDataChanged()) { + out += "voxelData"; + } + if (voxelSurfaceStyleChanged()) { + out += "voxelSurfaceStyle"; + } + if (hrefChanged()) { + out += "href"; + } + if (descriptionChanged()) { + out += "description"; + } + if (actionDataChanged()) { + out += "actionData"; + } + if (xTextureURLChanged()) { + out += "xTextureURL"; + } + if (yTextureURLChanged()) { + out += "yTextureURL"; + } + if (zTextureURLChanged()) { + out += "zTextureURL"; + } + if (xNNeighborIDChanged()) { + out += "xNNeighborID"; + } + if (yNNeighborIDChanged()) { + out += "yNNeighborID"; + } + if (zNNeighborIDChanged()) { + out += "zNNeighborID"; + } + if (xPNeighborIDChanged()) { + out += "xPNeighborID"; + } + if (yPNeighborIDChanged()) { + out += "yPNeighborID"; + } + if (zPNeighborIDChanged()) { + out += "zPNeighborID"; + } + + getAnimation().listChangedProperties(out); + getAtmosphere().listChangedProperties(out); + getSkybox().listChangedProperties(out); + getStage().listChangedProperties(out); + + return out; +} diff --git a/libraries/entities/src/EntityItemProperties.h b/libraries/entities/src/EntityItemProperties.h index 06f90ffd42..4ed7454c17 100644 --- a/libraries/entities/src/EntityItemProperties.h +++ b/libraries/entities/src/EntityItemProperties.h @@ -253,6 +253,8 @@ public: void setActionDataDirty() { _actionDataChanged = true; } + QList listChangedProperties(); + private: QUuid _id; bool _idSet; diff --git a/libraries/entities/src/EntityTree.cpp b/libraries/entities/src/EntityTree.cpp index c4c02d364f..b3e639747f 100644 --- a/libraries/entities/src/EntityTree.cpp +++ b/libraries/entities/src/EntityTree.cpp @@ -610,8 +610,11 @@ int EntityTree::processEditPacketData(NLPacket& packet, const unsigned char* edi // if the EntityItem exists, then update it startLogging = usecTimestampNow(); if (wantEditLogging()) { - qCDebug(entities) << "User [" << senderNode->getUUID() << "] editing entity. ID:" << entityItemID; - qCDebug(entities) << " properties:" << properties; + + // qCDebug(entities) << "User [" << senderNode->getUUID() << "] editing entity. ID:" << entityItemID; + // qCDebug(entities) << " properties:" << properties; + + qCDebug(entities) << "edit" << entityItemID.toString() << properties.listChangedProperties(); } endLogging = usecTimestampNow(); diff --git a/libraries/entities/src/PropertyGroup.h b/libraries/entities/src/PropertyGroup.h index 27d35fa714..138ee020c1 100644 --- a/libraries/entities/src/PropertyGroup.h +++ b/libraries/entities/src/PropertyGroup.h @@ -57,6 +57,7 @@ public: virtual void copyToScriptValue(const EntityPropertyFlags& desiredProperties, QScriptValue& properties, QScriptEngine* engine, bool skipDefaults, EntityItemProperties& defaultEntityProperties) const = 0; virtual void copyFromScriptValue(const QScriptValue& object, bool& _defaultSettings) = 0; virtual void debugDump() const { } + virtual void listChangedProperties(QList& out) { } virtual bool appendToEditPacket(OctreePacketData* packetData, EntityPropertyFlags& requestedProperties, diff --git a/libraries/entities/src/SkyboxPropertyGroup.cpp b/libraries/entities/src/SkyboxPropertyGroup.cpp index d291627d1e..0fd00bfe6e 100644 --- a/libraries/entities/src/SkyboxPropertyGroup.cpp +++ b/libraries/entities/src/SkyboxPropertyGroup.cpp @@ -33,6 +33,15 @@ void SkyboxPropertyGroup::debugDump() const { qDebug() << " URL:" << getURL() << " has changed:" << urlChanged(); } +void SkyboxPropertyGroup::listChangedProperties(QList& out) { + if (colorChanged()) { + out << "skybox-color"; + } + if (urlChanged()) { + out << "skybox-url"; + } +} + bool SkyboxPropertyGroup::appendToEditPacket(OctreePacketData* packetData, EntityPropertyFlags& requestedProperties, EntityPropertyFlags& propertyFlags, diff --git a/libraries/entities/src/SkyboxPropertyGroup.h b/libraries/entities/src/SkyboxPropertyGroup.h index 2ebfcfda14..745f762821 100644 --- a/libraries/entities/src/SkyboxPropertyGroup.h +++ b/libraries/entities/src/SkyboxPropertyGroup.h @@ -33,6 +33,7 @@ public: virtual void copyToScriptValue(const EntityPropertyFlags& desiredProperties, QScriptValue& properties, QScriptEngine* engine, bool skipDefaults, EntityItemProperties& defaultEntityProperties) const; virtual void copyFromScriptValue(const QScriptValue& object, bool& _defaultSettings); virtual void debugDump() const; + virtual void listChangedProperties(QList& out); virtual bool appendToEditPacket(OctreePacketData* packetData, EntityPropertyFlags& requestedProperties, diff --git a/libraries/entities/src/StagePropertyGroup.cpp b/libraries/entities/src/StagePropertyGroup.cpp index 629f65b72f..0c10795d6f 100644 --- a/libraries/entities/src/StagePropertyGroup.cpp +++ b/libraries/entities/src/StagePropertyGroup.cpp @@ -66,6 +66,27 @@ void StagePropertyGroup::debugDump() const { qDebug() << " _automaticHourDay:" << _automaticHourDay; } +void StagePropertyGroup::listChangedProperties(QList& out) { + if (sunModelEnabledChanged()) { + out << "stage-sunModelEnabled"; + } + if (latitudeChanged()) { + out << "stage-latitude"; + } + if (altitudeChanged()) { + out << "stage-altitude"; + } + if (dayChanged()) { + out << "stage-day"; + } + if (hourChanged()) { + out << "stage-hour"; + } + if (automaticHourDayChanged()) { + out << "stage-automaticHourDay"; + } +} + bool StagePropertyGroup::appendToEditPacket(OctreePacketData* packetData, EntityPropertyFlags& requestedProperties, EntityPropertyFlags& propertyFlags, diff --git a/libraries/entities/src/StagePropertyGroup.h b/libraries/entities/src/StagePropertyGroup.h index 95964f8264..c25a1e629e 100644 --- a/libraries/entities/src/StagePropertyGroup.h +++ b/libraries/entities/src/StagePropertyGroup.h @@ -33,6 +33,7 @@ public: virtual void copyToScriptValue(const EntityPropertyFlags& desiredProperties, QScriptValue& properties, QScriptEngine* engine, bool skipDefaults, EntityItemProperties& defaultEntityProperties) const; virtual void copyFromScriptValue(const QScriptValue& object, bool& _defaultSettings); virtual void debugDump() const; + virtual void listChangedProperties(QList& out); virtual bool appendToEditPacket(OctreePacketData* packetData, EntityPropertyFlags& requestedProperties,