using Godot; using Mr.BrickAdventures.Autoloads; namespace Mr.BrickAdventures.scripts.UI; public partial class SettingsMenu : Control { [Export] public Control InputSettingsControl { get; set; } [Export] public Control AudioSettingsControl { get; set; } [Export] public Control DisplaySettingsControl { get; set; } [Export] public Control GameplaySettingsControl { get; set; } [Export] public Control SettingsMenuControl { get; set; } [Export] public Button InputSettingsButton { get; set; } [Export] public Button AudioSettingsButton { get; set; } [Export] public Button DisplaySettingsButton { get; set; } [Export] public Button GameplaySettingsButton { get; set; } private UIManager UIManager => UIManager.Instance; public override void _Ready() { InputSettingsButton.Pressed += OnInputSettingsPressed; AudioSettingsButton.Pressed += OnAudioSettingsPressed; DisplaySettingsButton.Pressed += OnDisplaySettingsPressed; GameplaySettingsButton.Pressed += OnGameplaySettingsPressed; InputSettingsControl?.Hide(); AudioSettingsControl?.Hide(); DisplaySettingsControl?.Hide(); GameplaySettingsControl?.Hide(); } public override void _UnhandledInput(InputEvent @event) { if (!@event.IsActionPressed("ui_cancel")) return; if (UIManager.IsScreenOnTop(SettingsMenuControl)) UIManager.PopScreen(); } private void OnInputSettingsPressed() { UIManager.PushScreen(InputSettingsControl); } private void OnAudioSettingsPressed() { UIManager.PushScreen(AudioSettingsControl); } private void OnDisplaySettingsPressed() { UIManager.PushScreen(DisplaySettingsControl); } private void OnGameplaySettingsPressed() { UIManager.PushScreen(GameplaySettingsControl); } }