AircraftZC.cs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. using KYFramework;
  2. using Model;
  3. using MongoDB.Bson;
  4. using QuYuSaoMiao;
  5. namespace SimulationServer;
  6. public class AircraftZC : AircraftEntity
  7. {
  8. public string missionId;
  9. public List<double[]> SC01;
  10. public ZCTask content;
  11. public double[] Velocitys = new double[5]{220,220,220,110,0}; // 速度
  12. public double[] FuelConsumptions = new double[5]{2800,2800,2800,1000,132}; // 燃油消耗
  13. public double time;
  14. public override void Start()
  15. {
  16. FXJHGenerate.FromStartToMission(FlightPlanEditor,ref TurningPoints);//生成从起点到任务段起点的航路点
  17. SC01 = GeDianShengCheng.scanroute(content.poly,content.ScanRange,content.hSC,content.isRealHeight,content.isSurround,content.SurroundNum,GeDianShengCheng.DemHelper());//侦查模型输出的航路点位置
  18. FXJHGenerate.ZhenCha(SC01, FlightPlanEditor,ref TurningPoints);
  19. FXJHGenerate.FromMissionToEnd(FlightPlanEditor, FXJHGenerate.ZhenChaMissionEndPoint(SC01),ref TurningPoints);
  20. FXJHGenerate.FXJHTPDiedai(FlightPlanEditor,ref TurningPoints, Velocitys, FuelConsumptions);
  21. TotalFuelConsumption = TurningPoints[0].RemainingFuel - TurningPoints[^1].RemainingFuel;
  22. for (int i = 0; i < SC01.Count + 3; i++)
  23. {
  24. time += TurningPoints[i].SegmentFlightTime;
  25. }
  26. Log.Info($"{missionId} 任务结束!总飞行时间:{time} 总油耗:{TotalFuelConsumption}");
  27. }
  28. }
  29. [ObjectSystem]
  30. public class AircraftZCAwakeSystem : AwakeSystem<AircraftZC,FlightPlanEditor,ZCTask,int>
  31. {
  32. public override void Awake(AircraftZC self,FlightPlanEditor flightPlanEditor,ZCTask zcTask,int index)
  33. {
  34. self.content = zcTask;
  35. self.FlightPlanEditor = flightPlanEditor;
  36. self.missionId = zcTask.missionInformation.MissionName;
  37. self.AircraftId = zcTask.missionInformation.AircraftId[index];
  38. self.Name = zcTask.missionInformation.AircraftInfos[index];
  39. self.TaskReadyTime = zcTask.missionInformation.TakeoffPreparationTime;
  40. }
  41. }