32 lines
1.6 KiB
C#
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.");
|
|
}
|
|
}
|