feat: add console command framework

This commit is contained in:
2026-08-22 19:39:17 +02:00
parent c95233b9f9
commit 9f742f396f
28 changed files with 282 additions and 0 deletions
@@ -0,0 +1,40 @@
using System.Collections.Generic;
namespace Game.Features.Console.Contracts;
public sealed class CommandArgsBuilder
{
private readonly List<CommandArgSpec> _specs = [];
public CommandArgsBuilder AddStringArg(string name)
{
_specs.Add(new CommandArgSpec(name, CommandArgType.String));
return this;
}
public CommandArgsBuilder AddIntArg(string name)
{
_specs.Add(new CommandArgSpec(name, CommandArgType.Int));
return this;
}
public CommandArgsBuilder AddFloatArg(string name)
{
_specs.Add(new CommandArgSpec(name, CommandArgType.Float));
return this;
}
public CommandArgsBuilder AddBoolArg(string name)
{
_specs.Add(new CommandArgSpec(name, CommandArgType.Bool));
return this;
}
public CommandArgsBuilder AddChoiceArg(string name, IReadOnlyList<string> choices)
{
_specs.Add(new CommandArgSpec(name, CommandArgType.Choice, choices));
return this;
}
public IReadOnlyList<CommandArgSpec> Build() => _specs.ToArray();
}