From e127ad39e742396030352240d829bc903b1d4464 Mon Sep 17 00:00:00 2001 From: Sophia Pearson Date: Mon, 3 Oct 2022 22:22:50 +0200 Subject: godot: inital Godot 4 migration --- Scripts/Game/Command.cs | 2 +- Scripts/Game/CommandInputArea.cs | 12 +++++----- Scripts/Game/CommandParser.cs | 2 +- Scripts/Game/Commands/LookCommand.cs | 2 +- Scripts/Game/Game.cs | 2 +- Scripts/GodotExtensions/ArrayExtensions.cs | 3 ++- Scripts/GodotExtensions/NodeExtensions.cs | 2 +- Scripts/Location.cs | 2 +- Scripts/Menus/MainMenu.cs | 38 ++++++++++++++++-------------- Scripts/Menus/MainMenuButtons.cs | 14 +++++------ Scripts/Terminal/ButtonBlock.cs | 10 ++++---- Scripts/Terminal/InputArea.cs | 10 ++++---- Scripts/Terminal/MenuScreen.cs | 2 +- Scripts/Terminal/OutputArea.cs | 8 +++---- Scripts/Terminal/OutputBlock.cs | 6 ++--- Scripts/Terminal/StatusArea.cs | 4 ++-- 16 files changed, 62 insertions(+), 57 deletions(-) (limited to 'Scripts') diff --git a/Scripts/Game/Command.cs b/Scripts/Game/Command.cs index 07d7c84..20b8437 100644 --- a/Scripts/Game/Command.cs +++ b/Scripts/Game/Command.cs @@ -7,7 +7,7 @@ namespace Texty.Scripts.Game Look } - public class Command : Object + public partial class Command : Object { public Command() { diff --git a/Scripts/Game/CommandInputArea.cs b/Scripts/Game/CommandInputArea.cs index 2f1fc09..af54a15 100644 --- a/Scripts/Game/CommandInputArea.cs +++ b/Scripts/Game/CommandInputArea.cs @@ -4,10 +4,10 @@ using Texty.Scripts.Terminal; namespace Texty.Scripts.Game { [Tool] - public class CommandInputArea : InputArea + public partial class CommandInputArea : InputArea { - [Signal] public delegate void CommandSubmitted(Command command); - [Signal] public delegate void UnknownInputSubmitted(string text); + [Signal] public delegate void CommandSubmittedEventHandler(Command command); + [Signal] public delegate void UnknownInputSubmittedEventHandler(string text); private CommandParser CommandParser => GetNodeOrNull($"%{nameof(CommandParser)}"); @@ -18,15 +18,15 @@ namespace Texty.Scripts.Game public override void OnTextEntered(string text) { - if (text.Empty()) + if (text.Length == 0) return; TextInput.Clear(); var command = CommandParser.TryParse(text); if (command != null) - EmitSignal(nameof(CommandSubmitted), command); + EmitSignal(SignalName.CommandSubmitted, command); else - EmitSignal(nameof(UnknownInputSubmitted), text); + EmitSignal(SignalName.UnknownInputSubmitted, text); } } } \ No newline at end of file diff --git a/Scripts/Game/CommandParser.cs b/Scripts/Game/CommandParser.cs index 5f8249a..9b02ee5 100644 --- a/Scripts/Game/CommandParser.cs +++ b/Scripts/Game/CommandParser.cs @@ -4,7 +4,7 @@ using Texty.Scripts.Commands; namespace Texty.Scripts.Game { - public class CommandParser : Node + public partial class CommandParser : Node { public override void _Ready() { diff --git a/Scripts/Game/Commands/LookCommand.cs b/Scripts/Game/Commands/LookCommand.cs index b7910cc..22ba77e 100644 --- a/Scripts/Game/Commands/LookCommand.cs +++ b/Scripts/Game/Commands/LookCommand.cs @@ -9,7 +9,7 @@ namespace Texty.Scripts.Commands Around } - public class LookCommand : Command + public partial class LookCommand : Command { public LookCommand() { diff --git a/Scripts/Game/Game.cs b/Scripts/Game/Game.cs index ff7e4f7..07d42b2 100644 --- a/Scripts/Game/Game.cs +++ b/Scripts/Game/Game.cs @@ -3,7 +3,7 @@ using Texty.Scripts.Terminal; namespace Texty.Scripts.Game { - public class Game : Node + public partial class Game : Node { private InputArea InputArea => GetNodeOrNull($"%{nameof(InputArea)}"); private OutputArea OutputArea => GetNodeOrNull($"%{nameof(OutputArea)}"); diff --git a/Scripts/GodotExtensions/ArrayExtensions.cs b/Scripts/GodotExtensions/ArrayExtensions.cs index aa3a9c4..2712232 100644 --- a/Scripts/GodotExtensions/ArrayExtensions.cs +++ b/Scripts/GodotExtensions/ArrayExtensions.cs @@ -1,11 +1,12 @@ using System; +using Godot; using Godot.Collections; namespace Texty.Scripts.GodotExtensions { public static class ArrayExtensions { - public static void ForEach(this Array array, Action action) + public static void ForEach<[MustBeVariant] T>(this Array array, Action action) { foreach (var element in array) action.Invoke(element); } diff --git a/Scripts/GodotExtensions/NodeExtensions.cs b/Scripts/GodotExtensions/NodeExtensions.cs index b398985..c361496 100644 --- a/Scripts/GodotExtensions/NodeExtensions.cs +++ b/Scripts/GodotExtensions/NodeExtensions.cs @@ -6,7 +6,7 @@ namespace Texty.Scripts.GodotExtensions { public static class NodeExtensions { - public static Array GetChildren(this Node node) + public static Array GetChildren<[MustBeVariant] T>(this Node node) { return new Array(node.GetChildren().OfType()); } diff --git a/Scripts/Location.cs b/Scripts/Location.cs index ab8543b..aaca980 100644 --- a/Scripts/Location.cs +++ b/Scripts/Location.cs @@ -2,7 +2,7 @@ using Godot; namespace Texty.Scripts { - public class Location : Resource + public partial class Location : Resource { [Export(PropertyHint.MultilineText)] public string FlavourText = string.Empty; } diff --git a/Scripts/Menus/MainMenu.cs b/Scripts/Menus/MainMenu.cs index 0d84ee1..53183d1 100644 --- a/Scripts/Menus/MainMenu.cs +++ b/Scripts/Menus/MainMenu.cs @@ -2,23 +2,25 @@ using Godot; namespace Texty.Scripts.Menus { - public class MainMenu : Node - { - public void OnStartButtonPressed() - { - var game = ResourceLoader.Load("res://Scenes/Game/Game.tscn"); - GetTree().ChangeSceneTo(game); - } + public partial class MainMenu : Node + { + public override void _Ready() + { + } - public void OnCreditsButtonPressed() - { - var credits = ResourceLoader.Load("res://Scenes/Credits.tscn"); - GetTree().ChangeSceneTo(credits); - } + public void OnStartButtonPressed() + { + GD.Print("Start button was pressed."); + } - public void OnQuitButtonPressed() - { - GetTree().Quit(); - } - } -} \ No newline at end of file + public void OnCreditsButtonPressed() + { + GD.Print("Credits button was pressed."); + } + + public void OnQuitButtonPressed() + { + GetTree().Quit(); + } + } +} diff --git a/Scripts/Menus/MainMenuButtons.cs b/Scripts/Menus/MainMenuButtons.cs index c2af034..64e8914 100644 --- a/Scripts/Menus/MainMenuButtons.cs +++ b/Scripts/Menus/MainMenuButtons.cs @@ -4,11 +4,11 @@ using Texty.Scripts.Terminal; namespace Texty.Scripts.Menus { - public class MainMenuButtons : ButtonBlock + public partial class MainMenuButtons : ButtonBlock { - [Signal] public delegate void CreditsButtonPressed(); - [Signal] public delegate void QuitButtonPressed(); - [Signal] public delegate void StartButtonPressed(); + [Signal] public delegate void CreditsButtonPressedEventHandler(); + [Signal] public delegate void QuitButtonPressedEventHandler(); + [Signal] public delegate void StartButtonPressedEventHandler(); protected override void OnButtonPressed(int index) { @@ -16,13 +16,13 @@ namespace Texty.Scripts.Menus switch ((Buttons)index) { case Buttons.Start: - EmitSignal(nameof(StartButtonPressed)); + EmitSignal(SignalName.StartButtonPressed); break; case Buttons.Credits: - EmitSignal(nameof(CreditsButtonPressed)); + EmitSignal(SignalName.CreditsButtonPressed); break; case Buttons.Quit: - EmitSignal(nameof(QuitButtonPressed)); + EmitSignal(SignalName.QuitButtonPressed); break; default: throw new ArgumentOutOfRangeException(nameof(index), index, "Button not implemented!"); diff --git a/Scripts/Terminal/ButtonBlock.cs b/Scripts/Terminal/ButtonBlock.cs index 769fdf8..ef25f8c 100644 --- a/Scripts/Terminal/ButtonBlock.cs +++ b/Scripts/Terminal/ButtonBlock.cs @@ -1,12 +1,10 @@ using System.Linq; using Godot; -using Godot.Collections; using Texty.Scripts.GodotExtensions; namespace Texty.Scripts.Terminal { - [Tool] - public abstract class ButtonBlock : MarginContainer + public partial class ButtonBlock : MarginContainer { private VBoxContainer Buttons => GetNodeOrNull($"%{nameof(Buttons)}"); @@ -17,12 +15,14 @@ namespace Texty.Scripts.Terminal Buttons.GetChildren