private void InitializeModels() { this.pPlume = ParticleSystemDescription.InitializeSmokePlume("resources", "smoke.png"); this.pFire = ParticleSystemDescription.InitializeFire("resources", "fire.png"); this.pDust = ParticleSystemDescription.InitializeDust("resources", "smoke.png"); this.pProjectile = ParticleSystemDescription.InitializeProjectileTrail("resources", "smoke.png"); this.pExplosion = ParticleSystemDescription.InitializeExplosion("resources", "fire.png"); this.pSmokeExplosion = ParticleSystemDescription.InitializeExplosion("resources", "smoke.png"); this.pManager = this.AddComponent <ParticleManager>(new ParticleManagerDescription()); }
public ParticleSystem Get(ParticleSystemDescription description) { ParticleSystem system; if (!_particleSystems.TryGetValue(description, out system)) { system = new ParticleSystem(_device); system.Initialise(description); _particleSystems.Add(description, system); } return system; }
/// <summary> /// Initialises this <see cref="ParticleSystem"/> instance. /// </summary> /// <param name="description"></param> public void Initialise(ParticleSystemDescription description) { Description = description; _material.Parameters["Texture"].SetValue(description.Texture); _material.Parameters["Lifetime"].SetValue(description.Lifetime); _material.Parameters["EndVelocity"].SetValue(description.EndLinearVelocity); _material.Parameters["EndScale"].SetValue(description.EndScale); _material.Parameters["Gravity"].SetValue(description.Gravity); _currentTimeParameter = _material.Parameters["Time"]; _viewportScaleParameter = _material.Parameters["ViewportScale"]; InitialiseBuffer(); }
/// <summary> /// Increases the capacity of this system by the specified amount. /// </summary> /// <param name="size">The amount by which to increase the capacity.</param> public void GrowCapacity(int size) { Description = new ParticleSystemDescription { BlendState = Description.BlendState, EndLinearVelocity = Description.EndLinearVelocity, EndScale = Description.EndScale, Gravity = Description.Gravity, Lifetime = Description.Lifetime, Texture = Description.Texture, Type = Description.Type, Capacity = Description.Capacity + size, }; _dirty = true; }