using Godot; public partial class StageGUI : Control { [Signal] public delegate void OnCharacterSelectionMadeEventHandler(); private GameManager _gameManager; public override void _Ready() { _gameManager = GetTree().Root.GetNode("Main/GameManager"); } public void OnCharacterSelect() { if (_gameManager.IsP1GameOver) return; var wheel1 = GetNode("CharacterSelect/Wheel"); var wheel2 = GetNode("CharacterSelect/Wheel2"); wheel1.FocusMode = FocusModeEnum.All; wheel1.GrabFocus(); wheel1.Visible = true; _gameManager.IsP1SelectingCharacter = true; } public override void _Process(double delta) { var wheel1 = GetNode("CharacterSelect/Wheel"); if (wheel1.HasFocus()) { if (Input.IsActionJustPressed("p1_right")) _gameManager.SetP1ToNextCharacter(); if (Input.IsActionJustPressed("p1_left")) _gameManager.SetP1ToPreviousCharacter(); if (Input.IsActionJustPressed("p1_fire")) { GD.Print("Selected character"); wheel1.ReleaseFocus(); wheel1.Hide(); _gameManager.IsP1SelectingCharacter = false; EmitSignal(SignalName.OnCharacterSelectionMade); } } } }