public static bool TryCreateParticleEffect(int id, out MyParticleEffect effect, bool userDraw = false) { if (id == -1 || !Enabled || !MyParticlesLibrary.EffectExists(id)) { effect = null; return(false); } effect = CreateParticleEffect(id, userDraw); return(effect != null); }
public static void RemoveParticleEffect(MyParticleEffect effect, bool fromBackground = false) { bool remove = true; if (!effect.UserDraw) { lock (m_particleEffectsForUpdate) { remove = m_particleEffectsForUpdate.Contains(effect); if (remove) { m_particleEffectsForUpdate.Remove(effect); } } } m_particleEffectsAll.Remove(effect); MyParticlesLibrary.RemoveParticleEffectInstance(effect); }
static MyParticleEffect CreateParticleEffect(int id, bool userDraw = false) { MyParticleEffect effect = MyParticlesLibrary.CreateParticleEffect(id); //Not in parallel userDraw = false; if (effect != null) { if (!userDraw) { lock (m_particleEffectsForUpdate) { m_particleEffectsForUpdate.Add(effect); } } effect.UserDraw = userDraw; m_particleEffectsAll.Add(effect); } return(effect); }