diff --git a/examples/html/entityProperties.html b/examples/html/entityProperties.html index 268e95010c..97d8fe4729 100644 --- a/examples/html/entityProperties.html +++ b/examples/html/entityProperties.html @@ -305,15 +305,12 @@ var elParticleSections = document.querySelectorAll(".particle-section"); allSections.push(elParticleSections); + var elParticleIsEmitting = document.getElementById("property-particle-is-emitting"); var elParticleMaxParticles = document.getElementById("property-particle-maxparticles"); var elParticleLifeSpan = document.getElementById("property-particle-lifespan"); var elParticleEmitRate = document.getElementById("property-particle-emit-rate"); - var elParticleEmitDirectionX = document.getElementById("property-particle-emit-direction-x"); - var elParticleEmitDirectionY = document.getElementById("property-particle-emit-direction-y"); - var elParticleEmitDirectionZ = document.getElementById("property-particle-emit-direction-z"); - var elParticleEmitStrength = document.getElementById("property-particle-emit-strength"); - var elParticleLocalGravity = document.getElementById("property-particle-localgravity"); var elParticleRadius = document.getElementById("property-particle-radius"); + var elParticleTextures = document.getElementById("property-particle-textures"); var elTextSections = document.querySelectorAll(".text-section"); allSections.push(elTextSections); @@ -511,7 +508,7 @@ elColorSection.style.display = 'none'; } - if (properties.type == "Model" || properties.type == "ParticleEffect") { + if (properties.type == "Model") { for (var i = 0; i < elModelSections.length; i++) { elModelSections[i].style.display = 'block'; } @@ -529,7 +526,7 @@ elModelAnimationHold.checked = properties.animation.hold; elModelAnimationStartAutomatically.checked = properties.animation.startAutomatically; elModelTextures.value = properties.textures; - elModelOriginalTextures.value = properties.originalTextures; + elModelOriginalTextures.value = properties.originalTextures; } else if (properties.type == "Web") { for (var i = 0; i < elWebSections.length; i++) { elWebSections[i].style.display = 'block'; @@ -617,15 +614,13 @@ elParticleSections[i].style.display = 'block'; } + elParticleIsEmitting.checked = properties.isEmitting; elParticleMaxParticles.value = properties.maxParticles; elParticleLifeSpan.value = properties.lifespan.toFixed(2); elParticleEmitRate.value = properties.emitRate.toFixed(1); - elParticleEmitDirectionX.value = properties.emitDirection.x.toFixed(2); - elParticleEmitDirectionY.value = properties.emitDirection.y.toFixed(2); - elParticleEmitDirectionZ.value = properties.emitDirection.z.toFixed(2); - elParticleEmitStrength.value = properties.emitStrength.toFixed(2); - elParticleLocalGravity.value = properties.localGravity.toFixed(2); elParticleRadius.value = properties.particleRadius.toFixed(3); + elParticleTextures.value = properties.textures; + } else if (properties.type == "PolyVox") { for (var i = 0; i < elPolyVoxSections.length; i++) { elPolyVoxSections[i].style.display = 'block'; @@ -758,17 +753,12 @@ elWebSourceURL.addEventListener('change', createEmitTextPropertyUpdateFunction('sourceUrl')); + elParticleIsEmitting.addEventListener('change', createEmitCheckedPropertyUpdateFunction('isEmitting')); elParticleMaxParticles.addEventListener('change', createEmitNumberPropertyUpdateFunction('maxParticles')); elParticleLifeSpan.addEventListener('change', createEmitNumberPropertyUpdateFunction('lifespan')); elParticleEmitRate.addEventListener('change', createEmitNumberPropertyUpdateFunction('emitRate')); - var particleEmitDirectionChangeFunction = createEmitVec3PropertyUpdateFunctionWithMultiplier( - 'emitDirection', elParticleEmitDirectionX, elParticleEmitDirectionY, elParticleEmitDirectionZ, DEGREES_TO_RADIANS); - elParticleEmitDirectionX.addEventListener('change', particleEmitDirectionChangeFunction); - elParticleEmitDirectionY.addEventListener('change', particleEmitDirectionChangeFunction); - elParticleEmitDirectionZ.addEventListener('change', particleEmitDirectionChangeFunction); - elParticleEmitStrength.addEventListener('change', createEmitNumberPropertyUpdateFunction('emitStrength')); - elParticleLocalGravity.addEventListener('change', createEmitNumberPropertyUpdateFunction('localGravity')); elParticleRadius.addEventListener('change', createEmitNumberPropertyUpdateFunction('particleRadius')); + elParticleTextures.addEventListener('change', createEmitTextPropertyUpdateFunction('textures')); elModelURL.addEventListener('change', createEmitTextPropertyUpdateFunction('modelURL')); elShapeType.addEventListener('change', createEmitTextPropertyUpdateFunction('shapeType')); @@ -1335,13 +1325,13 @@
Textures
- +
Original Textures
- +
@@ -1362,6 +1352,12 @@ +
+ Is Emitting + + + +
Max Particles
@@ -1380,30 +1376,16 @@
-
-
Particle Emission Direction
-
-
X
-
Y
-
Z
-
-
-
-
Particle Emission Strength
-
- -
-
-
-
Particle Local Gravity
-
- -
-
Particle Radius
- + +
+
+
+
Textures
+
+
diff --git a/libraries/entities/src/EntityItemProperties.cpp b/libraries/entities/src/EntityItemProperties.cpp index 8fe5028c97..7c6b660be4 100644 --- a/libraries/entities/src/EntityItemProperties.cpp +++ b/libraries/entities/src/EntityItemProperties.cpp @@ -313,6 +313,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { CHECK_PROPERTY_CHANGE(PROP_TEXT_COLOR, textColor); CHECK_PROPERTY_CHANGE(PROP_BACKGROUND_COLOR, backgroundColor); CHECK_PROPERTY_CHANGE(PROP_SHAPE_TYPE, shapeType); + CHECK_PROPERTY_CHANGE(PROP_EMITTING_PARTICLES, isEmitting); CHECK_PROPERTY_CHANGE(PROP_MAX_PARTICLES, maxParticles); CHECK_PROPERTY_CHANGE(PROP_LIFESPAN, lifespan); CHECK_PROPERTY_CHANGE(PROP_EMIT_RATE, emitRate); @@ -424,6 +425,7 @@ QScriptValue EntityItemProperties::copyToScriptValue(QScriptEngine* engine, bool // Particles only if (_type == EntityTypes::ParticleEffect) { + COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_EMITTING_PARTICLES, isEmitting); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_MAX_PARTICLES, maxParticles); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_LIFESPAN, lifespan); COPY_PROPERTY_TO_QSCRIPTVALUE(PROP_EMIT_RATE, emitRate); @@ -1118,6 +1120,7 @@ bool EntityItemProperties::encodeEntityEditPacket(PacketType command, EntityItem APPEND_ENTITY_PROPERTY(PROP_ACTION_DATA, properties.getActionData()); APPEND_ENTITY_PROPERTY(PROP_ALPHA, properties.getAlpha()); } + if (propertyCount > 0) { int endOfEntityItemData = packetData->getUncompressedByteOffset(); @@ -1472,6 +1475,7 @@ void EntityItemProperties::markAllChanged() { _backgroundColorChanged = true; _shapeTypeChanged = true; + _isEmittingChanged = true; _maxParticlesChanged = true; _lifespanChanged = true; _emitRateChanged = true; diff --git a/libraries/entities/src/ParticleEffectEntityItem.cpp b/libraries/entities/src/ParticleEffectEntityItem.cpp index d04f192f80..f6ed4a06ab 100644 --- a/libraries/entities/src/ParticleEffectEntityItem.cpp +++ b/libraries/entities/src/ParticleEffectEntityItem.cpp @@ -329,7 +329,7 @@ EntityItemProperties ParticleEffectEntityItem::getProperties(EntityPropertyFlags COPY_ENTITY_PROPERTY_TO_PROPERTIES(color, getXColor); COPY_ENTITY_PROPERTY_TO_PROPERTIES(alpha, getAlpha); COPY_ENTITY_PROPERTY_TO_PROPERTIES(glowLevel, getGlowLevel); - COPY_ENTITY_PROPERTY_TO_PROPERTIES(shapeType, getShapeType); + COPY_ENTITY_PROPERTY_TO_PROPERTIES(shapeType, getShapeType); // FIXME - this doesn't appear to get used COPY_ENTITY_PROPERTY_TO_PROPERTIES(maxParticles, getMaxParticles); COPY_ENTITY_PROPERTY_TO_PROPERTIES(lifespan, getLifespan); COPY_ENTITY_PROPERTY_TO_PROPERTIES(isEmitting, getIsEmitting);