ServerStartEventHandler.cs 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233
  1. using Cysharp.Threading.Tasks;
  2. using KYFramework;
  3. using Model;
  4. using Newtonsoft.Json;
  5. using SimulationServer.Utils;
  6. using SimulationSingleServer.Utils;
  7. using static Org.BouncyCastle.Math.EC.ECCurve;
  8. using static System.Runtime.InteropServices.JavaScript.JSType;
  9. using Define = SimulationServer.Utils.Define;
  10. namespace SimulationServer;
  11. [Event]
  12. public class ServerStartEventHandler : AEvent<ServerStart>
  13. {
  14. protected override UniTask Run(ServerStart a)
  15. {
  16. Log.Info("读取配置文件!");
  17. var taskSys = Game.Scene.GetComponent<TaskComponent>();
  18. taskSys.date = DateTime.Now.ToString().Replace("/","-").Replace(":","-").Replace(" ","-");
  19. //Console.WriteLine("date:" + taskSys.date);
  20. HttpInterface.serverIp = File.ReadAllText("dbIp.txt");
  21. SimulationCommon.Util.serverIp = HttpInterface.serverIp;
  22. // 读取任务配置文件
  23. string ec_path = "Missions/editor_config.json";
  24. string tc_path = "Missions/task_config.json";
  25. if (!File.Exists(ec_path))
  26. {
  27. Log.Error("editor_config.json文件不存在!");
  28. return UniTask.CompletedTask;
  29. }
  30. if (!File.Exists(tc_path))
  31. {
  32. Log.Error("task_config.json文件不存在!");
  33. return UniTask.CompletedTask;
  34. }
  35. string ec_str = File.ReadAllText("Missions/editor_config.json");
  36. string tc_str = File.ReadAllText("Missions/task_config.json");
  37. //Console.WriteLine(ec_str);
  38. //Console.WriteLine(tc_str);
  39. EditorConfig? editorConfig = JsonConvert.DeserializeObject<EditorConfig>(ec_str);
  40. //for (int i = 0; i < editorConfig.medicalTargetPoints.Count; i++)
  41. //{
  42. // for (int z = 0; z < editorConfig.medicalTargetPoints[i].TargetType.diseaseTypes.Length; z++)
  43. // {
  44. // Console.WriteLine("疾病类型:" + editorConfig.medicalTargetPoints[i].TargetType.diseaseTypes[z]);
  45. // }
  46. //}
  47. TaskConfig? taskConfig = JsonConvert.DeserializeObject<TaskConfig>(tc_str);
  48. //int index = 0;
  49. //foreach (var item in taskConfig.LandSouJiuTasks)
  50. //{
  51. // index++;
  52. // foreach (var item1 in item.missionInformation.aircraftInfos)
  53. // {
  54. // Console.WriteLine("应用机型" + index + ":" + item1.AircraftType);
  55. // }
  56. // if (item.SearchMode.poly != null)
  57. // foreach (var item1 in item.SearchMode.poly)
  58. // {
  59. // foreach (var item2 in item1)
  60. // {
  61. // Console.WriteLine("多边形边界" + index + ":" + item2);
  62. // }
  63. // }
  64. //}
  65. //foreach (var item in editorConfig.bases)
  66. //{
  67. // Console.WriteLine("位置信息:" + item.BasePositionInfo);
  68. //}
  69. if (editorConfig == null || taskConfig == null)
  70. {
  71. Log.Error("配置文件解析失败!");
  72. return UniTask.CompletedTask;
  73. }
  74. foreach (var item in editorConfig.targetPoints)
  75. {
  76. if (item.TargetType.Type == "遇险人员" || item.TargetType.Type == "车辆" || item.TargetType.Type == "航空器")
  77. {
  78. taskSys.isLand = true;
  79. }
  80. else if (item.TargetType.Type == "落水人员" || item.TargetType.Type == "救生筏" || item.TargetType.Type == "船舶" || item.TargetType.Type == "大规模落水人群")
  81. {
  82. taskSys.isSea = true;
  83. }
  84. //Console.WriteLine("taskSys.isLand:" + taskSys.isLand + "_" + "taskSys.isSea:" + taskSys.isSea);
  85. break;
  86. }
  87. //Weather weather = Util.GetWeather("内蒙古", "根河", DateTime.Now.ToString("2024-05-10"));
  88. TaskComponent.Weather = new Weather();
  89. var temp = TaskComponent.Weather.day_temp.Replace("°C", "");
  90. Define.TEMPERATURE = double.Parse(temp);
  91. var wind_temp = TaskComponent.Weather.day_wind_comp.Replace("级", "").Split('-');
  92. Define.WIND = double.Parse(wind_temp[0]);
  93. //// 创建灭火
  94. //foreach (var mhTask in taskConfig.mHTaskConfigs)
  95. //{
  96. // Game.EventSystem.Publish(new CreateMHTask
  97. // { EditorConfig = editorConfig, MHTaskConfig = mhTask });
  98. //}
  99. //// 创建侦察
  100. //foreach (var zcTask in taskConfig.zCTask)
  101. //{
  102. // Game.EventSystem.Publish(new CreateZCTask
  103. // { EditorConfig = editorConfig, ZCTask = zcTask });
  104. //}
  105. //// 创建巡护
  106. //foreach (var xhTask in taskConfig.xHTask)
  107. //{
  108. // Game.EventSystem.Publish(new CreateXHTask
  109. // { EditorConfig = editorConfig, XHTask = xhTask });
  110. //}
  111. //Console.WriteLine("taskConfig.seaSouJiuTasks.Count:" + taskConfig.seaSouJiuTasks.Count);
  112. ////创建搜救
  113. //foreach (var seaSJTask in taskConfig.seaSouJiuTasks)
  114. //{
  115. // taskSys.missionCount++;
  116. // //Console.WriteLine("seaSJTask.missionInformation.MissionName:" + seaSJTask.missionInformation.MissionName);
  117. // //Console.WriteLine("TargetPointId:" + seaSJTask.TargetPointId);
  118. // //Console.WriteLine("SearchPayload:" + seaSJTask.SearchPayload);
  119. // //Console.WriteLine("SearchMode:" + seaSJTask.SearchMode);
  120. // //Console.WriteLine("RadarTransmitterPower:" + seaSJTask.RadarTransmitterPower);
  121. // //Console.WriteLine("仿真次数:" + editorConfig.runCounts);
  122. // Game.EventSystem.Publish(new CreateSeaSJTask
  123. // { EditorConfig = editorConfig, SeaSJTask = seaSJTask });
  124. // //break;
  125. //}
  126. //foreach (var landSXTask in taskConfig.LandSouXunTasks)
  127. //{
  128. // taskSys.missionCount++;
  129. // Game.EventSystem.Publish(new CreateLandSXTask
  130. // { EditorConfig = editorConfig, LandSXTask = landSXTask });
  131. // //break;
  132. //}
  133. ////创建空中吊运救援任务
  134. //foreach (var KZDYTask in taskConfig.KZDYTasks)
  135. //{
  136. // taskSys.missionCount++;
  137. // Game.EventSystem.Publish(new CreateKZDYTask
  138. // { EditorConfig = editorConfig, KZDYTask = KZDYTask });
  139. // //break;
  140. //}
  141. ////创建空投空送任务
  142. //foreach (var KTKSTask in taskConfig.KTKSTasks)
  143. //{
  144. // taskSys.missionCount++;
  145. // Game.EventSystem.Publish(new CreateKTKSTask
  146. // { EditorConfig = editorConfig, KTKSTask = KTKSTask });
  147. // //break;
  148. //}
  149. ////创建着水救援任务
  150. //foreach (var ZSJYTask in taskConfig.ZSJYTasks)
  151. //{
  152. // taskSys.missionCount++;
  153. // Game.EventSystem.Publish(new CreateZSJYTask
  154. // { EditorConfig = editorConfig, ZSJYTask = ZSJYTask });
  155. // //break;
  156. //}
  157. ////创建机降救援任务
  158. //foreach (var JJJYTask in taskConfig.JJJYTasks)
  159. //{
  160. // taskSys.missionCount++;
  161. // Game.EventSystem.Publish(new CreateJJJYTask
  162. // { EditorConfig = editorConfig, JJJYTask = JJJYTask });
  163. // //break;
  164. //}
  165. ////创建索滑降救援任务
  166. //foreach (var SHJTask in taskConfig.SHJTasks)
  167. //{
  168. // taskSys.missionCount++;
  169. // Game.EventSystem.Publish(new CreateSHJTask
  170. // { EditorConfig = editorConfig, SHJTask = SHJTask });
  171. // //break;
  172. //}
  173. //创建现场急救任务
  174. foreach (var XCJJTask in taskConfig.XCJJTasks)
  175. {
  176. taskSys.missionCount++;
  177. Game.EventSystem.Publish(new CreateXCJJTask
  178. { EditorConfig = editorConfig, XCJJTask = XCJJTask });
  179. //break;
  180. }
  181. //医疗转运任务
  182. foreach (var YLZYTask in taskConfig.YLZYTasks)
  183. {
  184. taskSys.missionCount++;
  185. Game.EventSystem.Publish(new CreateYLZYTask
  186. { EditorConfig = editorConfig, YLZYTask = YLZYTask });
  187. //break;
  188. }
  189. //医疗物品运送
  190. foreach (var YLWPYSTask in taskConfig.YLWPYSTasks)
  191. {
  192. taskSys.missionCount++;
  193. Game.EventSystem.Publish(new CreateYLWPYSTask
  194. { EditorConfig = editorConfig, YLWPYSTask = YLWPYSTask });
  195. //break;
  196. }
  197. ////绞车吊载转运任务
  198. //foreach (var JCDZZYTask in taskConfig.JCDZZYTasks)
  199. //{
  200. // taskSys.missionCount++;
  201. // Game.EventSystem.Publish(new CreateJCDZZYTask
  202. // { EditorConfig = editorConfig, JCDZZYTask = JCDZZYTask });
  203. // //break;
  204. //}
  205. taskSys.ExecutionContext = editorConfig.runCounts;
  206. taskSys.Start();
  207. return UniTask.CompletedTask;
  208. }
  209. }