public static void AddParticleEffect(MyParticleEffect effect) { MyParticleEffect oldEffect; if (m_libraryEffectsString.TryGetValue(effect.Name, out oldEffect) || m_libraryEffects.TryGetValue(effect.ID, out oldEffect)) return; //We dont want replace effects if they may be shown in editor //RemoveParticleEffect(oldEffect.ID); m_libraryEffects.Add(effect.GetID(), effect); m_libraryEffectsString[effect.Name] = effect; }
static public void RemoveParticleEffectInstance(MyParticleEffect effect) { effect.Close(false); //if (effect.Enabled) if (m_libraryEffects.ContainsKey(effect.GetID())) { var instances = m_libraryEffects[effect.GetID()].GetInstances(); if (instances != null) { if (instances.Contains(effect)) { MyParticlesManager.EffectsPool.Deallocate(effect); m_libraryEffects[effect.GetID()].RemoveInstance(effect); } else { System.Diagnostics.Debug.Assert(false, "Effect deleted twice!"); } } } }
public static void AddParticleEffect(MyParticleEffect effect) { MyParticleEffect oldEffect; if (m_libraryEffectsString.TryGetValue(effect.Name, out oldEffect) || m_libraryEffects.TryGetValue(effect.ID, out oldEffect)) { return; //We dont want replace effects if they may be shown in editor } //RemoveParticleEffect(oldEffect.ID); m_libraryEffects.Add(effect.GetID(), effect); m_libraryEffectsString[effect.Name] = effect; }
public static void RemoveParticleEffect(MyParticleEffect effect) { RemoveParticleEffect(effect.GetID()); }
public static void AddParticleEffect(MyParticleEffect effect) { m_libraryEffects.Add(effect.GetID(), effect); m_libraryEffectsString[effect.Name] = effect; }