private void _serverMain() { try { IoCManager.InitThread(DependencyCollection); ServerEntryPoint.RegisterIoC(); IoCManager.BuildGraph(); ServerEntryPoint.SetupLogging(); ServerEntryPoint.InitReflectionManager(); var server = DependencyCollection.Resolve <IBaseServerInternal>(); server.ContentRootDir = "../../"; if (server.Start()) { throw new Exception("Server failed to start."); } var gameLoop = new IntegrationGameLoop( DependencyCollection.Resolve <IGameTiming>(), _toInstanceChannel, _fromInstanceChannel); server.OverrideMainLoop(gameLoop); server.MainLoop(); } catch (Exception e) { _fromInstanceChannel.PushMessage(new ShutDownMessage(e)); return; } _fromInstanceChannel.PushMessage(new ShutDownMessage(null)); }
private void _serverMain() { try { IoCManager.InitThread(DependencyCollection); ServerEntryPoint.RegisterIoC(); IoCManager.Register <INetManager, IntegrationNetManager>(true); IoCManager.Register <IServerNetManager, IntegrationNetManager>(true); IoCManager.Register <IntegrationNetManager, IntegrationNetManager>(true); IoCManager.Register <ICommandLineArgs, CommandLineArgs>(true); _options?.InitIoC?.Invoke(); IoCManager.BuildGraph(); ServerEntryPoint.SetupLogging(); ServerEntryPoint.InitReflectionManager(); var server = DependencyCollection.Resolve <IBaseServerInternal>(); server.ContentRootDir = "../../"; _options?.BeforeStart?.Invoke(); if (server.Start()) { throw new Exception("Server failed to start."); } var gameLoop = new IntegrationGameLoop( DependencyCollection.Resolve <IGameTiming>(), _fromInstanceWriter, _toInstanceReader); server.OverrideMainLoop(gameLoop); server.MainLoop(); } catch (Exception e) { _fromInstanceWriter.TryWrite(new ShutDownMessage(e)); return; } _fromInstanceWriter.TryWrite(new ShutDownMessage(null)); }