using System;
using UnityEngine;

namespace ToolsBox.SoundManager
{
    [Serializable]
    public struct SoundSource
    {
        public SoundDataSO SoundData;
        public SourcePosition PositionSource;
        public Vector3 Position;
        public GameObject ParentObject;
        
        public void PlaySound()
        {
            if (SoundManager.Instance == null) return;

            switch (PositionSource)
            {
                case SourcePosition.Manager: SoundManager.Instance.PlaySound(SoundData); break;
                case SourcePosition.Object: 
                    if (ParentObject)
                    {
                        SoundManager.Instance.PlaySound(SoundData, ParentObject);
                    }
                    else
                    {
                        Debug.LogWarning($"ParentObject is null for {SoundData.name}");
                    }
                    break;
                case SourcePosition.Custom: SoundManager.Instance.PlaySound(SoundData, Position); break;
            }
        }   
    }
}
