Esempio n. 1
0
        /// <summary>
        /// Copies the values in this <see cref="ParticleEmitter"/> to another.
        /// </summary>
        /// <param name="destination">The <see cref="ParticleEmitter"/> to copy the values to.</param>
        public void CopyValuesTo(IParticleEmitter destination)
        {
            var d = (ParticleEmitter)destination;

            d.BlendMode       = BlendMode;
            d.Budget          = Budget;
            d.EmitterLife     = EmitterLife;
            d.ParticleLife    = ParticleLife;
            d.Origin          = Origin;
            d.Name            = Name;
            d.ReleaseAmount   = ReleaseAmount;
            d.ReleaseColor    = ReleaseColor;
            d.ReleaseRate     = ReleaseRate;
            d.ReleaseRotation = ReleaseRotation;
            d.ReleaseScale    = ReleaseScale;
            d.ReleaseSpeed    = ReleaseSpeed;
            d.Sprite.SetGrh(Sprite.GrhData, Sprite.AnimType, Sprite.LastUpdated);

            d.ParticleModifiers.Clear();
            d.ParticleModifiers.AddRange(ParticleModifiers.Select(x => x.DeepCopy()));

            d.EmitterModifiers.Clear();
            d.EmitterModifiers.AddRange(EmitterModifiers.Select(x => x.DeepCopy()));
        }