summaryrefslogtreecommitdiff
path: root/Scripts/Game/Commands/LookCommand.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Scripts/Game/Commands/LookCommand.cs')
-rw-r--r--Scripts/Game/Commands/LookCommand.cs91
1 files changed, 45 insertions, 46 deletions
diff --git a/Scripts/Game/Commands/LookCommand.cs b/Scripts/Game/Commands/LookCommand.cs
index 22ba77e..c66fa43 100644
--- a/Scripts/Game/Commands/LookCommand.cs
+++ b/Scripts/Game/Commands/LookCommand.cs
@@ -1,58 +1,57 @@
using System.Linq;
using Texty.Scripts.Game;
-namespace Texty.Scripts.Commands
+namespace Texty.Scripts.Commands;
+
+public enum LookModifier
+{
+ At,
+ Around
+}
+
+public partial class LookCommand : Command
{
- public enum LookModifier
+ public LookCommand()
{
- At,
- Around
}
- public partial class LookCommand : Command
+ public LookCommand(string[] arguments) : base(CommandType.Look, arguments)
{
- public LookCommand()
- {
- }
+ (Modifier, arguments) = TryParseModifier(arguments);
+ Target = string.Join(" ", arguments);
+ }
- public LookCommand(string[] arguments) : base(CommandType.Look, arguments)
- {
- (Modifier, arguments) = TryParseModifier(arguments);
- Target = string.Join(" ", arguments);
- }
-
- public string Target { get; }
- public LookModifier? Modifier { get; }
-
- /// <summary>
- /// Access this <c>LookCommand</c>'s modifier as a string.
- /// </summary>
- /// <remarks>
- /// This function is provided as a means for testing the modifier parsing from GDScript.
- /// </remarks>
- private string ModifierAsString => Modifier?.ToString();
-
- public override string ToString()
- {
- return $"look {ModifierAsString?.ToLower()} {string.Join(" ", Target)}";
- }
-
- /// <summary>
- /// Try to parse this <c>LookCommand</c>'s modifier from the given arguments.
- /// </summary>
- /// <param name="arguments">The arguments given to this look commands</param>
- /// <returns>A pair consisting of the parse modifier and the remaining arguments</returns>
- private static (LookModifier?, string[]) TryParseModifier(string[] arguments)
+ public string Target { get; }
+ public LookModifier? Modifier { get; }
+
+ /// <summary>
+ /// Access this <c>LookCommand</c>'s modifier as a string.
+ /// </summary>
+ /// <remarks>
+ /// This function is provided as a means for testing the modifier parsing from GDScript.
+ /// </remarks>
+ private string ModifierAsString => Modifier?.ToString();
+
+ public override string ToString()
+ {
+ return $"look {ModifierAsString?.ToLower()} {string.Join(" ", Target)}";
+ }
+
+ /// <summary>
+ /// Try to parse this <c>LookCommand</c>'s modifier from the given arguments.
+ /// </summary>
+ /// <param name="arguments">The arguments given to this look commands</param>
+ /// <returns>A pair consisting of the parse modifier and the remaining arguments</returns>
+ private static (LookModifier?, string[]) TryParseModifier(string[] arguments)
+ {
+ if (arguments.Length == 0)
+ return (null, arguments);
+
+ return arguments[0].ToLower() switch
{
- if (arguments.Length == 0)
- return (null, arguments);
-
- return arguments[0].ToLower() switch
- {
- "at" => (LookModifier.At, arguments.Skip(1).ToArray()),
- "around" => (LookModifier.Around, new string[] { }),
- _ => (null, arguments)
- };
- }
+ "at" => (LookModifier.At, arguments.Skip(1).ToArray()),
+ "around" => (LookModifier.Around, new string[] { }),
+ _ => (null, arguments)
+ };
}
} \ No newline at end of file