Handle collision events when we do other updates (and their entity scripts) rather than when we do the physic updates while the tree is locked.
Given that, remove the check that kept sound from playing (or scripts from running) when we would have deadlocked, because now we don't.
We don't want sound for these.
This appears to avoid the Entities.getEntityProperties() deadlock within entity scripts.
Variable names:
energyPercentOfFull => energyFactorOfFull, because the range is 0-1, not 0-100.
COLLISION_SOUND_COMPRESSION => COLLISION_SOUND_COMPRESSION_RANGE (portion of full dynamic range)
Tune constants:
COLLISION_ENERGY_AT_FULL_VOLUME 10 => 1
COLLISION_MINIMUM_VOLUME 0.01 => 0.001
COLLISION_SOUND_COMPRESSION_RANGE 0.5 => 0.95
Refer to SoundCache later, after filtering for collision threshold.
* Updated variable naming to match coding standards.
* Changed particle raw float arrays to vectors.
* Bug fix: changing maxParticles will no longer lead to memory corruption.
* Made particle ring buffer more explicit, added _particleTailIndex.
* Added getLivingParticleCount() private method.
* Moved integration and bounds code into private methods.
* Bug fix: high emit rates now properly integrate particles forward for the
remaing frame time, not the entire frame.
* Bug fix: new particles were not initiaized to origin.
* Added more particles to ajt-test.js.
* Bug fix: ajt-test.js script was not shutting down properly.
* Removed random seed, unless we have a psudo random number generator per
particle system instance, it's unlikely that this will preserve sync.
* Bumped packet version number.
* Changed particle geometry to billboarded quads
* Added texture support
* Added ajt-test.js particle test script.
* GeometryCache support for batched quads with texCoords.
* Bug fix for infinite loop if _lifetime was very large.
* Don't reset the simulation on animation loop.
* stop emitting particles on animation stop, but keep simulating until there are no more living particles.
* Removed some trailing whitespace