Esempio n. 1
0
 /// <summary>
 /// Añade un generador estático de fuego
 /// </summary>
 /// <param name="particleType">Tipo de partícula</param>
 /// <param name="obj">Objeto que genera el fuego</param>
 /// <param name="duration">Duración</param>
 public void AddParticleGenerator(ParticleSystemTypes particleType, IPhysicObject obj, float duration)
 {
     if (particleType != ParticleSystemTypes.None)
     {
         this.m_ParticleGenerators.Add(new ParticleGenerator()
         {
             Emitter = obj, ParticleType = particleType, Duration = duration
         });
     }
 }
Esempio n. 2
0
        /// <summary>
        /// Obtiene la cantidad de partículas en uso del tipo especificado
        /// </summary>
        /// <param name="particleType">Tipo de partículas</param>
        /// <returns>Devuelve el número de partículas en uso</returns>
        public int GetUsedParticlesCount(ParticleSystemTypes particleType)
        {
            if (particleType != ParticleSystemTypes.None)
            {
                if (this.m_ParticleDictionary.ContainsKey(particleType))
                {
                    return(this.m_ParticleDictionary[particleType].UsedParticles);
                }
            }

            return(0);
        }
Esempio n. 3
0
        /// <summary>
        /// Añade una partícula del tipo especificado
        /// </summary>
        /// <param name="particleType">Tipo de partícula</param>
        /// <param name="position">Posición</param>
        /// <param name="velocity">Velocidad</param>
        public void AddParticle(ParticleSystemTypes particleType, Vector3 position, Vector3 velocity)
        {
            if (particleType != ParticleSystemTypes.None)
            {
                if (!this.m_ParticleDictionary.ContainsKey(particleType))
                {
                    ParticleSystem particleSystem = new ParticleSystem(this.Game, particleType);
                    particleSystem.DrawOrder = 0;
                    this.Game.Components.Add(particleSystem);

                    this.m_ParticleDictionary.Add(particleType, particleSystem);
                }

                this.m_ParticleDictionary[particleType].AddParticle(position, velocity);
            }
        }
Esempio n. 4
0
        /// <summary>
        /// Adds a new particle system to the collection
        /// </summary>
        /// <param name="name">Particle system name</param>
        /// <param name="type">Particle system type</param>
        /// <param name="description">Particle system description</param>
        /// <param name="emitter">Particle emitter</param>
        /// <returns>Returns the new particle system</returns>
        public IParticleSystem AddParticleSystem(string name, ParticleSystemTypes type, ParticleSystemDescription description, ParticleEmitter emitter)
        {
            IParticleSystem pSystem = null;

            if (type == ParticleSystemTypes.CPU)
            {
                pSystem = new ParticleSystemCpu(this.Game, name, description, emitter);
            }
            else if (type == ParticleSystemTypes.GPU)
            {
                pSystem = new ParticleSystemGpu(this.Game, name, description, emitter);
            }
            else
            {
                throw new EngineException("Bad particle system type");
            }

            this.AllocatedParticleCount += pSystem.MaxConcurrentParticles;

            this.ParticleSystems.Add(pSystem);

            return(pSystem);
        }
Esempio n. 5
0
 /// <summary>
 /// Constructor.
 /// </summary>
 public ParticleSystem(Game game, ParticleSystemTypes particleType)
     : base(game)
 {
     this.ParticleType = particleType;
 }
Esempio n. 6
0
 /// <summary>
 /// Adds a new particle system to the collection
 /// </summary>
 /// <param name="type">Particle system type</param>
 /// <param name="description">Particle system description</param>
 /// <param name="emitter">Particle emitter</param>
 /// <returns>Returns the new particle system</returns>
 public IParticleSystem AddParticleSystem(ParticleSystemTypes type, ParticleSystemDescription description, ParticleEmitter emitter)
 {
     return(this.AddParticleSystem(null, type, description, emitter));
 }