using System.Collections;
using System.Collections.Generic;
using UnityEngine;
#if FMOD_AVAILABLE
using FMOD;
using FMODUnity;
#endif

[RequireComponent(typeof(Rigidbody))]
public class OnCollideSound : MonoBehaviour
{
#if FMOD_AVAILABLE
    [SerializeField]
    EventReference soundRef;

    [SerializeField]
    float minVelocity = 0.1f;

    [SerializeField]
    List<string> specialTags = new List<string>();

    [SerializeField]
    List<EventReference> specialSounds = new List<EventReference>();

    private bool _specialCase = false;
    private Rigidbody _rigidbody;

    private void Start()
    {
        _rigidbody = GetComponent<Rigidbody>();
    }

    private void OnCollisionEnter(Collision collision)
    {
        if (_rigidbody.velocity.magnitude >= minVelocity)
        {
            for(int i=0; i<specialTags.Count; i++)
            {
                if (collision.transform.tag == specialTags[i])
                {
                    RuntimeManager.PlayOneShot(specialSounds[i], transform.position);
                    _specialCase = true;
                    break;
                }
            }

            if (!_specialCase)
            {
                // Play default collide sound
                RuntimeManager.PlayOneShot(soundRef, transform.position);
                UnityEngine.Debug.Log(gameObject.name);
            }

            _specialCase = false;
        }  
    }
#endif
}