﻿using System;
using UnityEngine;

namespace JLGames.RocketDriver.Actions.Audio
{
    [Serializable]
    public class AudioSettingsUser
    {
        // Music 音乐
        [Header("Music Settings 音乐设置")] 
        [SerializeField] private AudioVolume m_MusicVolume = new AudioVolume();

        // Sound 音效
        [Header("Sound Settings 音效设置")] 
        [SerializeField] private AudioVolume m_SoundVolume = new AudioVolume();

        public float VolumeMusic
        {
            get { return m_MusicVolume.Volume; }
            set { m_MusicVolume.Volume = value; }
        }

        public float VolumeSound
        {
            get { return m_SoundVolume.Volume; }
            set { m_SoundVolume.Volume = value; }
        }

        public bool IsMutedMusic
        {
            get { return m_MusicVolume.IsMuted; }
            set { m_MusicVolume.IsMuted = value; }
        }

        public bool IsMutedSound
        {
            get { return m_SoundVolume.IsMuted; }
            set { m_SoundVolume.IsMuted = value; }
        }

        public AudioVolume MusicSettings => m_MusicVolume;
        public AudioVolume SoundSettings => m_SoundVolume;

        public AudioSettingsUser Clone()
        {
            return new AudioSettingsUser
            {
                m_MusicVolume = m_MusicVolume.Clone(),
                m_SoundVolume = m_MusicVolume.Clone(),
            };
        }

        public override string ToString()
        {
            return $"AudioUser{{Music={m_MusicVolume}, Sound={m_SoundVolume}}}";
        }
    }
}