ported from perforce

This commit is contained in:
2026-04-19 00:43:27 +02:00
commit 6c0c33f5d4
700 changed files with 19735 additions and 0 deletions

View File

@@ -0,0 +1,104 @@
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;
}