Files
Workspace/Assets/Demos/Demo2/Runtime/Demo2Commands.cs
T
2026-08-18 02:03:34 +08:00

32 lines
1.6 KiB
C#

#nullable enable
using Demo2.Domain;
using ShrinkCommand;
namespace Demo2.Runtime
{
[ShrinkCommandSubscriber]
public static class Demo2Commands
{
[ShrinkCommand("demo2 status", Description = "显示规则工厂状态")]
private static string Status() => Service().BuildStatus();
[ShrinkCommand("demo2 spawn-item <kind> <quantity>", Description = "生成物料", Permission = "demo2.admin.spawn")]
private static string SpawnItem(Demo2MaterialKind kind, int quantity) { Service().SpawnItem(kind, quantity); return Service().BuildStatus(); }
[ShrinkCommand("demo2 set-speed <speed>", Description = "设置模拟速度", Permission = "demo2.admin.speed")]
private static string SetSpeed(int speed) { Service().SetSpeed(speed); return "speed=" + Service().Speed; }
[ShrinkCommand("demo2 start-wave", Description = "立即推进到下一战斗阶段", Permission = "demo2.admin.wave")]
private static string StartWave() { Service().StartWaveImmediately(); return Service().BuildStatus(); }
[ShrinkCommand("demo2 dump-ecs", Description = "导出 ECS 状态", Permission = "demo2.admin.dump")]
private static string DumpEcs() => Service().DumpEcs();
[ShrinkCommand("demo2 reload-mods", Description = "重载并暂存 Demo2 Mod", Permission = "demo2.admin.mods")]
private static string ReloadMods() => Service().StageModReload();
private static Demo2GameService Service() => Demo2GameService.Current ?? throw new System.InvalidOperationException("Demo2 service unavailable.");
}
}