Have a few issues when processing my Particle System.
1. Source Emitter Delay
Now source emitters are emitters contained within a particle system. You can have any number of them and they all come with there own settings for example:
Kill Emitter On Deactivate
Kill Emitter On Completed
Duration Distribution Method >
- Constant Float
- Uniform Float (range: lower/upper)
- Key Frame Constant Float (curve)
- Key Frame Uniform Float
- bRecalc (if TRUE, get new float from range every loop)
Emitter Loops
Spawn Distribution Mehtod > (spawn rate)
- Constant Float
- Uniform Float (range: lower/upper)
- Key Frame Constant Float (curve)
- Key Frame Uniform Float
- Scaler (spawn rate multiplier)
Delay Distribution Method >
- Constant Float
- Uniform Float (range: lower/upper)
- Key Frame Constant Float (curve)
- Key Frame Uniform Float
- bRecalc (if TRUE, get new float from range every loop)
Delay First Loop Only
Burst List
Burst Method
Max Draw Count
You'll notice that the emitter has nothing to do with display. This is because in my system particles have no appearance when emitted. I'm using an event based particle system, so each event handles the appearance of the particle.
Now I'm having an issue implementing Delay. First lets look at how the emitter is processed.
Pseudo code cause there to much code to post so I just simplified it.
// run through emitters (physical emitters placed in the world)
emitterChild = firstEmitterChild
while emitterChild > -1
// < update emitter elapsed etc... >
// process emitter system
systemChild = emitterSystem
// process system sources emitter
sourceChild = system(systemChild).firstChild
while sourceChild > -1
// < process spawning >
sourceChild = nextSourceChild
endwhile
emitterChild = nextEmtterChild
endwhile
The question is how do I delay the source emitters based on the emitter elapsed, given the fact there could be loops, different spawn rates, burst lists and etc?