104 lines
2.9 KiB
C#
104 lines
2.9 KiB
C#
using Godot;
|
|
using RobotAndDonkey.Game.Pois;
|
|
|
|
public partial class OptionsMenu : Control
|
|
{
|
|
public override void _Ready()
|
|
{
|
|
m_MasterSlider = GetNode<HSlider>("%MasterSlider");
|
|
m_MusicSlider = GetNode<HSlider>("%MusicSlider");
|
|
m_SfxSlider = GetNode<HSlider>("%SfxSlider");
|
|
m_GameSpeedSlider = GetNode<HSlider>("%GameSpeedSlider");
|
|
m_TutorialScreen = GetNode<TutorialScreen>("%TutorialScreen");
|
|
|
|
m_ContinueButton = GetNode<Button>("%ContinueButton");
|
|
m_ExitToMainButton = GetNode<Button>("%ExitToMainButton");
|
|
m_ExitGameButton = GetNode<Button>("%ExitGameButton");
|
|
m_TutorialButton = GetNode<Button>("%TutorialButton");
|
|
|
|
m_MasterSlider.ValueChanged += OnMasterSliderChanged;
|
|
m_MusicSlider.ValueChanged += OnMusicSliderChanged;
|
|
m_SfxSlider.ValueChanged += OnSfxSliderChanged;
|
|
m_GameSpeedSlider.ValueChanged += OnGameSpeedSliderChanged;
|
|
|
|
m_ContinueButton.Pressed += OnContinuePressed;
|
|
m_ExitToMainButton.Pressed += OnExitToMainPressed;
|
|
m_ExitGameButton.Pressed += OnExitGamePressed;
|
|
m_TutorialButton.Pressed += OnTutorialPressed;
|
|
|
|
HideMenu();
|
|
}
|
|
|
|
public void ShowMenu()
|
|
{
|
|
Visible = true;
|
|
|
|
var settings = SettingsManager.Instance;
|
|
if (settings != null)
|
|
{
|
|
m_MasterSlider.Value = settings.MasterVolumeDb;
|
|
m_MusicSlider.Value = settings.MusicVolumeDb;
|
|
m_SfxSlider.Value = settings.SfxVolumeDb;
|
|
m_GameSpeedSlider.Value = settings.GameSpeed;
|
|
}
|
|
m_MasterSlider.GrabFocus();
|
|
}
|
|
|
|
public void HideMenu()
|
|
{
|
|
Visible = false;
|
|
}
|
|
|
|
private void OnMasterSliderChanged(double value)
|
|
{
|
|
SettingsManager.Instance?.SetMasterVolume((float)value);
|
|
}
|
|
|
|
private void OnMusicSliderChanged(double value)
|
|
{
|
|
SettingsManager.Instance?.SetMusicVolume((float)value);
|
|
}
|
|
|
|
private void OnSfxSliderChanged(double value)
|
|
{
|
|
SettingsManager.Instance?.SetSfxVolume((float)value);
|
|
Main.Instance.Music.Play(new Donkey());
|
|
}
|
|
|
|
private void OnGameSpeedSliderChanged(double value)
|
|
{
|
|
SettingsManager.Instance?.SetGameSpeed((float)value);
|
|
}
|
|
|
|
private void OnContinuePressed()
|
|
{
|
|
HideMenu();
|
|
}
|
|
|
|
private void OnExitToMainPressed()
|
|
{
|
|
Main.Instance.StartMetaGame();
|
|
HideMenu();
|
|
}
|
|
|
|
private void OnExitGamePressed()
|
|
{
|
|
GetTree().Quit();
|
|
}
|
|
|
|
private void OnTutorialPressed()
|
|
{
|
|
m_TutorialScreen.Restart();
|
|
m_TutorialScreen.Visible = true;
|
|
}
|
|
|
|
private TutorialScreen m_TutorialScreen;
|
|
private Button m_ContinueButton;
|
|
private Button m_ExitGameButton;
|
|
private Button m_ExitToMainButton;
|
|
private Button m_TutorialButton;
|
|
private HSlider m_MasterSlider;
|
|
private HSlider m_MusicSlider;
|
|
private HSlider m_SfxSlider;
|
|
private HSlider m_GameSpeedSlider;
|
|
} |