private void RemoveLoop(ActiveParticleLoop loop) { _loops.Remove(loop); }
private void ReplaceLoop(ActiveParticleLoop oldLoop, ActiveParticleLoop newLoopData) { if (!_particleSystems.ContainsKey(newLoopData.EffectName)) AddNewSytem(newLoopData.EffectName); oldLoop.EffectName = newLoopData.EffectName; oldLoop.Location = newLoopData.Location; oldLoop.EmitModifier = newLoopData.EmitModifier; oldLoop.Tint = newLoopData.Tint; }
public ParticleLoopToken Loop(ActiveParticleLoop loopData) { if(!_particleSystems.ContainsKey(loopData.EffectName)) AddNewSytem(loopData.EffectName); _loops.Add(loopData); return new ParticleLoopToken { End = () => RemoveLoop(loopData), Replace = newLoopData => ReplaceLoop(loopData, newLoopData) }; }