public static void Main() { // buggy need to find a beter way //// Console.CancelKeyPress += Console_CancelKeyPress; PrintHeader(); LogQueue = new ConcurrentQueue <LogEntry>(); Settings = LoadConfigFile(); SetupLogging(); UpdateConnectedClientCount(); if (Settings == null) { Console.ReadKey(); } else if (!Directory.Exists(Settings.MmapsFolder)) { LogQueue.Enqueue(new LogEntry($"MMAP folder missing, edit folder in config.json...", ConsoleColor.Red, string.Empty, LogLevel.ERROR)); Console.ReadKey(); } else { Settings.MmapsFolder = Settings.MmapsFolder.Replace('/', '\\'); AmeisenNav = new AmeisenNav(Settings.MmapsFolder, Settings.MaxPolyPathCount, Settings.MaxPointPathCount); if (Settings.PreloadMaps.Length > 0) { PreloadMaps(); } TcpListener = new TcpListener(IPAddress.Parse(Settings.IpAddress), Settings.Port); TcpListener.Start(); LogQueue.Enqueue(new LogEntry($"Listening on {Settings.IpAddress}:{Settings.Port} press Ctrl + C to exit...", ConsoleColor.Green, string.Empty, LogLevel.MASTER)); EnterServerLoop(); // cleanup after server stopped AmeisenNav.Dispose(); } }
private static void Main(string[] args) { Console.Title = "AmeisenNavigation Server"; Console.WriteLine($"-> AmeisenNavigation Server"); Console.WriteLine($">> Loading config from: {settingsPath}"); Settings settings = new Settings(); if (File.Exists(settingsPath)) { settings = JsonConvert.DeserializeObject <Settings>(File.ReadAllText(settingsPath)); } else { File.WriteAllText(settingsPath, JsonConvert.SerializeObject(settings)); } if (!Directory.Exists(settings.mmapsFolder)) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine(">> MMAP folder missing, edit folder in config.json"); Console.ResetColor(); Console.ReadKey(); } else { Console.WriteLine($">> MMAPS located at: {settings.mmapsFolder}"); AmeisenNav = new AmeisenNav(settings.mmapsFolder); StopServer = false; if (settings.preloadMaps.Length > 0) { Console.WriteLine($">> Preloading Maps"); foreach (int i in settings.preloadMaps) { AmeisenNav.LoadMap(i); } Console.WriteLine($">> Preloaded {settings.preloadMaps.Length} Maps"); } TcpListener = new TcpListener(IPAddress.Parse(settings.ipAddress), settings.port); TcpListener.Start(); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine($">> Server running ({settings.ipAddress}:{settings.port}) press Ctrl + C to exit"); Console.ResetColor(); EnterServerLoop(); AmeisenNav.Dispose(); } // Debug stuff /*float[] start = { -8826.562500f, -371.839752f, 71.638428f }; * float[] end = { -8847.150391f, -387.518677f, 72.575912f }; * float[] tileLoc = { -8918.406250f, -130.297256f, 80.906364f }; * * List<Vector3> Path = GetPath(start, tileLoc); * string json_path = JsonConvert.SerializeObject(Path); * * Console.WriteLine($"Path contains {Path.Count} Nodes"); * Console.WriteLine($"Path json {json_path}"); * Console.ReadKey();*/ }