using Core.UI;
using TowerDefense.Game;
using UnityEngine.UI;
namespace TowerDefense.UI
{
///
/// Simple options menu for setting volumes
///
public class OptionsMenu : SimpleMainMenuPage
{
public Slider masterSlider;
public Slider sfxSlider;
public Slider musicSlider;
///
/// Event fired when sliders change
///
public void UpdateVolumes()
{
float masterVolume, sfxVolume, musicVolume;
GetSliderVolumes(out masterVolume, out sfxVolume, out musicVolume);
if (GameManager.instanceExists)
{
GameManager.instance.SetVolumes(masterVolume, sfxVolume, musicVolume, false);
}
}
///
/// Set initial slider values
///
public override void Show()
{
if (GameManager.instanceExists)
{
float master, sfx, music;
GameManager.instance.GetVolumes(out master, out sfx, out music);
if (masterSlider != null)
{
masterSlider.value = master;
}
if (sfxSlider != null)
{
sfxSlider.value = sfx;
}
if (musicSlider != null)
{
musicSlider.value = music;
}
}
base.Show();
}
///
/// Persist volumes to data store
///
public override void Hide()
{
float masterVolume, sfxVolume, musicVolume;
GetSliderVolumes(out masterVolume, out sfxVolume, out musicVolume);
if (GameManager.instanceExists)
{
GameManager.instance.SetVolumes(masterVolume, sfxVolume, musicVolume, true);
}
base.Hide();
}
///
/// Retrieve values from sliders
///
void GetSliderVolumes(out float masterVolume, out float sfxVolume, out float musicVolume)
{
masterVolume = masterSlider != null ? masterSlider.value : 1;
sfxVolume = sfxSlider != null ? sfxSlider.value : 1;
musicVolume = musicSlider != null ? musicSlider.value : 1;
}
}
}