namespace VRTK.Examples.Old
{
    using UnityEngine;

    public class FireExtinguisher_Sprayer : VRTK_InteractableObject
    {
        public FireExtinguisher_Base baseCan;
        public float breakDistance = 0.12f;
        public float maxSprayPower = 5f;

        private GameObject waterSpray;
        private ParticleSystem particles;

        public void Spray(float power)
        {
            if (power <= 0)
            {
                particles.Stop();
            }

            if (power > 0)
            {
                if (particles.isPaused || particles.isStopped)
                {
                    particles.Play();
                }

#if UNITY_5_5_OR_NEWER
                var mainModule = particles.main;
                mainModule.startSpeedMultiplier = maxSprayPower * power;
#else
                particles.startSpeed = maxSprayPower * power;
#endif
            }
        }

        protected override void Awake()
        {
            base.Awake();
            waterSpray = transform.Find("WaterSpray").gameObject;
            particles = waterSpray.GetComponent<ParticleSystem>();
            particles.Stop();
        }

        protected override void Update()
        {
            base.Update();
            if (Vector3.Distance(transform.position, baseCan.transform.position) > breakDistance)
            {
                ForceStopInteracting();
            }
        }
    }
}