Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }