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) }); }
private void RemoveLoop(ActiveParticleLoop loop) { _loops.Remove(loop); }