public void AddActiveParticle(ParticleSystemEffect particleEffect)
        {
            Debug.Assert(particleEffect != null, "[WARNING] - PARTICLE EFFECT MUST NOT BE NULL WHEN BEING ADDED AS AN ACTIVE PARTICLE!");

            if (particleEffect != null)
            {
                if ( !m_ActiveParticles.Contains(particleEffect) )
                    m_ActiveParticles.Add(particleEffect);
            }
        }
        public ParticleSystemEffect AddParticleEffect(ParticleSystemEffect particleEffect)
        {
            if (particleEffect != null)
            {
                // Set the particle system that this particle system effect is part of 
                particleEffect.ParticleSystem = this;

                // Initialise
                particleEffect.Initialise();

                // Load
                particleEffect.Load();

                // Add
                m_Particles.Add(particleEffect);
            }

            return particleEffect;
        }
        public void RemoveActiveParticle(ParticleSystemEffect particleEffect)
        {
            Debug.Assert(particleEffect != null, "[WARNING] - PARTICLE EFFECT MUST NOT BE NULL WHEN BEING REMOVING AS AN ACTIVE PARTICLE!");

            if (particleEffect != null)
            {
                if (m_ActiveParticles.Contains(particleEffect))
                    m_ActiveParticles.Remove(particleEffect);
            }
        }
        public bool ContainsActiveParticle(ParticleSystemEffect particleEffect)
        {
            Debug.Assert(particleEffect != null, "[WARNING] - PARTICLE EFFECT MUST NOT BE NULL WHEN CHECKING FOR AN ACTIVE PARTICLE!");

            bool toRet = false;

            if (particleEffect != null)
                toRet = m_ActiveParticles.Contains(particleEffect);

            return toRet;
        }