/// <summary>
        /// Reset and play the particle.
        /// </summary>
        public void Reset()
        {
            this.Enabled = true;
            this.Visible = true;

            TimeSequence.Enabled = true;
            TimeSequence.Visible = true;

            TimeSequence.Reset();
        }
        /// <summary>
        /// stops and disables particle.
        /// </summary>
        public void Stop()
        {
            this.Enabled = false;
            this.Visible = false;

            TimeSequence.Enabled = false;
            TimeSequence.Visible = false;

            TimeSequence.Stop();
        }
        /// <summary>
        /// Creates using particle information.
        /// </summary>
        /// <param name="info">the particle information</param>
        /// <param name="resourcePath">the particle file</param>
        public void Create(ref ParticleSequenceInfo info, string resourcePath)
        {
            this.sequenceInfo = info;
            this.resourcePath = resourcePath;

            //  Add TimeSequence to child
            timeSequence = new TimeSequence();
            AddChild(timeSequence);

            for (int i = 0; i < info.TimeSequencesInfo.Count; i++)
            {
                TimeSequenceInfo timeSequenceInfo = info.TimeSequencesInfo[i];

                //  Create a TimeSequenceData using TimeSequenceInfo
                TimeSequenceData timeSequenceData =
                    new TimeSequenceData(timeSequenceInfo);

                //  Create a particle using ParticleInfo and TextureSequence
                //  in the TimeSequenceInfo
                Particle particle = new Particle(resourcePath,
                                                 timeSequenceInfo.ParticleInfo,
                                                 timeSequenceInfo.TextureSequence);

                //  Set owner particle to the TimeSequenceData
                timeSequenceData.Owner = particle;

                //  Add the particle to the TimeSequence's child
                timeSequence.AddChild(particle);

                //  Add TimeSequenceData to the TimeSequence
                timeSequence.AddSequence(timeSequenceData);
            }

            Name = info.Name;

            //  Particle off
            Stop();
        }