EnumMetadata +EntityType + ScenarioUnit +AmmunitionSpecId

- GetEnums() 新增 EntityType 枚举(模型管理 UI 区分 Drone/Platform/DetectionEquip)
- ScenarioUnit 新增 AmmunitionSpecId 字段(FK → AmmunitionSpec,前端弹药配置用)
- 对接文档同步更新
- 262 测试通过,Unity 编译通过
This commit is contained in:
tian 2026-06-20 22:33:12 +08:00
parent 6f83cfb105
commit fb3c6fd2eb
6 changed files with 11 additions and 7 deletions

View File

@ -446,10 +446,9 @@ public ModelInfo Get(string id);
```csharp ```csharp
var enums = scenario.GetEnums(); var enums = scenario.GetEnums();
// enums.DroneTypes → List<EnumItem> { Name="Rotor", ChineseName="旋翼", Value=0 }, ... // enums.DroneType, enums.PowerType, enums.PlatformType, enums.AerosolType,
// enums.EntityTypes, enums.PowerTypes, enums.PlatformTypes, enums.AerosolTypes, // enums.WeatherType, enums.WindDirection, enums.SceneType, enums.FormationMode,
// enums.WeatherTypes, enums.WindDirections, enums.SceneTypes, // enums.TriggerMode, enums.ReleaseMode, enums.EquipmentRole, enums.EntityType
// enums.FormationModes, enums.TriggerModes, enums.ReleaseModes, enums.EquipmentRoles
``` ```
| 枚举 | 成员 = 值 | 中文 | | 枚举 | 成员 = 值 | 中文 |
@ -465,6 +464,7 @@ var enums = scenario.GetEnums();
| **TriggerMode** | Time=0, Area=1, Manual=2 | 时间触发/区域触发/手动触发 | | **TriggerMode** | Time=0, Area=1, Manual=2 | 时间触发/区域触发/手动触发 |
| **ReleaseMode** | Single=0, Continuous=1, Pulse=2 | 单次齐射/连续释放/脉冲释放 | | **ReleaseMode** | Single=0, Continuous=1, Pulse=2 | 单次齐射/连续释放/脉冲释放 |
| **EquipmentRole** | Detection=0, LaunchPlatform=1 | 探测设备/发射平台 | | **EquipmentRole** | Detection=0, LaunchPlatform=1 | 探测设备/发射平台 |
| **EntityType** | Drone=0, Platform=1, DetectionEquip=2, Cloud=3, Munition=4 | 无人机/发射平台/探测设备/云团/弹药 |
### 6.2 无官方翻译的枚举(前端需自行映射中文) ### 6.2 无官方翻译的枚举(前端需自行映射中文)
@ -473,7 +473,6 @@ var enums = scenario.GetEnums();
| **SimulationState** | `Simulation` | Idle=0, Running=1, Paused=2, Stopped=3, Completed=4 | 空闲/运行/暂停/停止/完成 | | **SimulationState** | `Simulation` | Idle=0, Running=1, Paused=2, Stopped=3, Completed=4 | 空闲/运行/暂停/停止/完成 |
| **DroneStatus** | `Simulation` | Flying=0, Destroyed=1, ReachedTarget=2, ZoneIntruded=3 | 飞行中/已摧毁/到达目标/侵入管控区 | | **DroneStatus** | `Simulation` | Flying=0, Destroyed=1, ReachedTarget=2, ZoneIntruded=3 | 飞行中/已摧毁/到达目标/侵入管控区 |
| **PlatformState** | `Simulation` | Idle=0, FlyingToTarget=1, ReadyToRelease=2 | 空闲/飞向目标/准备投放 | | **PlatformState** | `Simulation` | Idle=0, FlyingToTarget=1, ReadyToRelease=2 | 空闲/飞向目标/准备投放 |
| **EntityType** | `Models` | Drone=0, Platform=1, DetectionEquip=2, Cloud=3, Munition=4 | 无人机/平台/探测设备/云团/弹药 |
| **SimEventType** | `Models` | TargetDetected=0, MunitionLaunched=1, CloudGenerated=2, DroneEnteredCloud=3, DroneDestroyed=4, DroneReachedTarget=5, ZoneIntruded=6, WaypointReached=7, SimulationEnd=8, PlanningFailed=9 | 目标发现/弹药发射/云团生成/进入云团/摧毁/到达目标/侵入管控区/到达航点/仿真结束/规划失败 | | **SimEventType** | `Models` | TargetDetected=0, MunitionLaunched=1, CloudGenerated=2, DroneEnteredCloud=3, DroneDestroyed=4, DroneReachedTarget=5, ZoneIntruded=6, WaypointReached=7, SimulationEnd=8, PlanningFailed=9 | 目标发现/弹药发射/云团生成/进入云团/摧毁/到达目标/侵入管控区/到达航点/仿真结束/规划失败 |
| **InterceptResult** | `Models` | Success=0, Partial=1, Failed=2 | 成功拦截/部分拦截/拦截失败 | | **InterceptResult** | `Models` | Success=0, Partial=1, Failed=2 | 成功拦截/部分拦截/拦截失败 |
| **DamageStage** | `Models` | Normal=0, EngineAnomaly=1, AttitudeLoss=2, Destroyed=3 | 正常/引擎异常/姿态丧失/摧毁 | | **DamageStage** | `Models` | Normal=0, EngineAnomaly=1, AttitudeLoss=2, Destroyed=3 | 正常/引擎异常/姿态丧失/摧毁 |
@ -568,6 +567,7 @@ public class EnumMetadata
public List<EnumItem> TriggerMode { get; set; } public List<EnumItem> TriggerMode { get; set; }
public List<EnumItem> ReleaseMode { get; set; } public List<EnumItem> ReleaseMode { get; set; }
public List<EnumItem> EquipmentRole { get; set; } public List<EnumItem> EquipmentRole { get; set; }
public List<EnumItem> EntityType { get; set; }
} }
``` ```
@ -685,6 +685,7 @@ ScenarioConfig
| `Quantity` | int | 1 | 数量 | | `Quantity` | int | 1 | 数量 |
| `PositionX/Y/Z` | double | 0 | 部署位置Y=高度,米) | | `PositionX/Y/Z` | double | 0 | 部署位置Y=高度,米) |
| `AerosolType` | int? | null | 挂载弹药类型0/1/2 | | `AerosolType` | int? | null | 挂载弹药类型0/1/2 |
| `AmmunitionSpecId` | string | "" | FK → AmmunitionSpec挂载的弹药规格前端配置用 |
| `MunitionCount` | int? | null | 弹药数量 | | `MunitionCount` | int? | null | 弹药数量 |
| `WaveId` | string | "" | 关联批次 | | `WaveId` | string | "" | 关联批次 |
| `Description` | string | "" | 备注 | | `Description` | string | "" | 备注 |

View File

@ -34,6 +34,9 @@ namespace CounterDrone.Core.Models
public int? AerosolType { get; set; } public int? AerosolType { get; set; }
/// <summary>外键 → AmmunitionSpec挂载的弹药规格前端配置用</summary>
public string AmmunitionSpecId { get; set; } = string.Empty;
public int? MunitionCount { get; set; } public int? MunitionCount { get; set; }
public int Source { get; set; } = (int)ConfigSource.Manual; public int Source { get; set; } = (int)ConfigSource.Manual;

View File

@ -14,7 +14,6 @@ namespace CounterDrone.Core.Services
public class EnumMetadata public class EnumMetadata
{ {
public List<EnumItem> DroneType { get; set; } = new(); public List<EnumItem> DroneType { get; set; } = new();
public List<EnumItem> EntityType { get; set; } = new();
public List<EnumItem> PowerType { get; set; } = new(); public List<EnumItem> PowerType { get; set; } = new();
public List<EnumItem> PlatformType { get; set; } = new(); public List<EnumItem> PlatformType { get; set; } = new();
public List<EnumItem> AerosolType { get; set; } = new(); public List<EnumItem> AerosolType { get; set; } = new();
@ -25,5 +24,6 @@ namespace CounterDrone.Core.Services
public List<EnumItem> TriggerMode { get; set; } = new(); public List<EnumItem> TriggerMode { get; set; } = new();
public List<EnumItem> ReleaseMode { get; set; } = new(); public List<EnumItem> ReleaseMode { get; set; } = new();
public List<EnumItem> EquipmentRole { get; set; } = new(); public List<EnumItem> EquipmentRole { get; set; } = new();
public List<EnumItem> EntityType { get; set; } = new();
} }
} }

View File

@ -235,7 +235,6 @@ namespace CounterDrone.Core.Services
return new EnumMetadata return new EnumMetadata
{ {
DroneType = EnumToList<Models.DroneType>(TranslateDrone), DroneType = EnumToList<Models.DroneType>(TranslateDrone),
EntityType = EnumToList<Models.EntityType>(TranslateEntityType),
PowerType = EnumToList<Models.PowerType>(TranslatePower), PowerType = EnumToList<Models.PowerType>(TranslatePower),
PlatformType = EnumToList<Models.PlatformType>(TranslatePlatform), PlatformType = EnumToList<Models.PlatformType>(TranslatePlatform),
AerosolType = EnumToList<Models.AerosolType>(TranslateAerosol), AerosolType = EnumToList<Models.AerosolType>(TranslateAerosol),
@ -246,6 +245,7 @@ namespace CounterDrone.Core.Services
TriggerMode = EnumToList<Models.TriggerMode>(TranslateTrigger), TriggerMode = EnumToList<Models.TriggerMode>(TranslateTrigger),
ReleaseMode = EnumToList<Models.ReleaseMode>(TranslateRelease), ReleaseMode = EnumToList<Models.ReleaseMode>(TranslateRelease),
EquipmentRole = EnumToList<Models.EquipmentRole>(TranslateEquipmentRole), EquipmentRole = EnumToList<Models.EquipmentRole>(TranslateEquipmentRole),
EntityType = EnumToList<Models.EntityType>(TranslateEntityType),
}; };
} }

Binary file not shown.