AircraftZC.cs 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  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 ZCMethod ZCMethod;
  15. public override void Start()
  16. {
  17. FXJHGenerate.FromStartToMission(FlightPlanEditor,ref TurningPoints);//生成从起点到任务段起点的航路点
  18. SC01 = GeDianShengCheng.scanroute(ZCMethod.Poly, ZCMethod.ScanRange, ZCMethod.hSC, ZCMethod.isRealHeight, ZCMethod.isSurround, ZCMethod.SurroundNum,GeDianShengCheng.DemHelper());//侦查模型输出的航路点位置
  19. FXJHGenerate.ZhenCha(SC01, FlightPlanEditor,ref TurningPoints);
  20. FXJHGenerate.FromMissionToEnd(FlightPlanEditor, FXJHGenerate.ZhenChaMissionEndPoint(SC01),ref TurningPoints);
  21. FXJHGenerate.FXJHTPDiedai(FlightPlanEditor,ref TurningPoints, Velocitys, FuelConsumptions);
  22. TotalFuelConsumption = TurningPoints[0].RemainingFuel - TurningPoints[^1].RemainingFuel;
  23. for (int i = 0; i < SC01.Count + 3; i++)
  24. {
  25. time += TurningPoints[i].SegmentFlightTime;
  26. }
  27. Log.Info($"{missionId} 任务结束!总飞行时间:{time} 总油耗:{TotalFuelConsumption}");
  28. }
  29. }
  30. [ObjectSystem]
  31. public class AircraftZCAwakeSystem : AwakeSystem<AircraftZC,FlightPlanEditor,ZCTask,int>
  32. {
  33. public override void Awake(AircraftZC self,FlightPlanEditor flightPlanEditor,ZCTask zcTask,int index)
  34. {
  35. self.content = zcTask;
  36. self.FlightPlanEditor = flightPlanEditor;
  37. self.missionId = zcTask.missionInformation.MissionName;
  38. self.AircraftId = zcTask.aircraftInfos[index].AircraftId;
  39. self.Name = zcTask.aircraftInfos[index].AircraftType;
  40. self.TaskReadyTime = zcTask.missionInformation.TakeoffPreparationTime;
  41. }
  42. }