private void _clientMain()
            {
                try
                {
                    IoCManager.InitThread(DependencyCollection);
                    GameController.RegisterIoC(GameController.DisplayMode.Headless);
                    IoCManager.BuildGraph();

                    GameController.RegisterReflection();

                    var client = DependencyCollection.Resolve <IGameControllerInternal>();

                    client.ContentRootDir = "../../";

                    client.Startup();

                    var gameLoop = new IntegrationGameLoop(DependencyCollection.Resolve <IGameTiming>(),
                                                           _toInstanceChannel, _fromInstanceChannel);
                    client.OverrideMainLoop(gameLoop);
                    client.MainLoop(GameController.DisplayMode.Headless);
                }
                catch (Exception e)
                {
                    _fromInstanceChannel.PushMessage(new ShutDownMessage(e));
                    return;
                }

                _fromInstanceChannel.PushMessage(new ShutDownMessage(null));
            }
            private void _clientMain()
            {
                try
                {
                    IoCManager.InitThread(DependencyCollection);
                    GameController.RegisterIoC(GameController.DisplayMode.Headless);
                    IoCManager.Register <INetManager, IntegrationNetManager>(true);
                    IoCManager.Register <IClientNetManager, IntegrationNetManager>(true);
                    IoCManager.Register <IntegrationNetManager, IntegrationNetManager>(true);
                    _options?.InitIoC?.Invoke();
                    IoCManager.BuildGraph();

                    GameController.RegisterReflection();

                    var client = DependencyCollection.Resolve <IGameControllerInternal>();

                    client.ContentRootDir        = "../../";
                    client.LoadConfigAndUserData = false;
                    _options?.BeforeStart?.Invoke();
                    client.Startup();

                    var gameLoop = new IntegrationGameLoop(DependencyCollection.Resolve <IGameTiming>(),
                                                           _fromInstanceWriter, _toInstanceReader);
                    client.OverrideMainLoop(gameLoop);
                    client.MainLoop(GameController.DisplayMode.Headless);
                }
                catch (Exception e)
                {
                    _fromInstanceWriter.TryWrite(new ShutDownMessage(e));
                    return;
                }

                _fromInstanceWriter.TryWrite(new ShutDownMessage(null));
            }
            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));
            }
Ejemplo n.º 4
0
            private void _clientMain()
            {
                try
                {
                    IoCManager.InitThread(DependencyCollection);
                    ClientIoC.RegisterIoC(GameController.DisplayMode.Headless);
                    IoCManager.Register <INetManager, IntegrationNetManager>(true);
                    IoCManager.Register <IClientNetManager, IntegrationNetManager>(true);
                    IoCManager.Register <IntegrationNetManager, IntegrationNetManager>(true);
                    IoCManager.Register <IModLoader, ModLoader>(true);
                    IoCManager.Register <ModLoader, ModLoader>(true);
                    _options?.InitIoC?.Invoke();
                    IoCManager.BuildGraph();

                    GameController.RegisterReflection();

                    var client = DependencyCollection.Resolve <IGameControllerInternal>();

                    if (_options?.ClientContentAssembly != null)
                    {
                        IoCManager.Resolve <ModLoader>().ClientContentAssembly = _options.ClientContentAssembly;
                    }

                    if (_options?.SharedContentAssembly != null)
                    {
                        IoCManager.Resolve <ModLoader>().SharedContentAssembly = _options.SharedContentAssembly;
                    }

                    client.LoadConfigAndUserData = false;

                    if (_options != null)
                    {
                        _options.BeforeStart?.Invoke();
                        IoCManager.Resolve <IConfigurationManager>()
                        .OverrideConVars(_options.CVarOverrides.Select(p => (p.Key, p.Value)));

                        if (_options.ExtraPrototypes != null)
                        {
                            IoCManager.Resolve <IResourceManagerInternal>()
                            .MountString("/Prototypes/__integration_extra.yml", _options.ExtraPrototypes);
                        }
                    }

                    client.Startup(() => new TestLogHandler("CLIENT"));

                    var gameLoop = new IntegrationGameLoop(DependencyCollection.Resolve <IGameTiming>(),
                                                           _fromInstanceWriter, _toInstanceReader);
                    client.OverrideMainLoop(gameLoop);
                    client.MainLoop(GameController.DisplayMode.Headless);
                }
                catch (Exception e)
                {
                    _fromInstanceWriter.TryWrite(new ShutDownMessage(e));
                    return;
                }

                _fromInstanceWriter.TryWrite(new ShutDownMessage(null));
            }
Ejemplo n.º 5
0
            private void _serverMain()
            {
                try
                {
                    IoCManager.InitThread(DependencyCollection);
                    ServerIoC.RegisterIoC();
                    IoCManager.Register <INetManager, IntegrationNetManager>(true);
                    IoCManager.Register <IServerNetManager, IntegrationNetManager>(true);
                    IoCManager.Register <IntegrationNetManager, IntegrationNetManager>(true);
                    IoCManager.Register <ISystemConsoleManager, SystemConsoleManagerDummy>(true);
                    IoCManager.Register <IModLoader, ModLoader>(true);
                    IoCManager.Register <ModLoader, ModLoader>(true);
                    IoCManager.RegisterInstance <IStatusHost>(new Mock <IStatusHost>().Object, true);
                    _options?.InitIoC?.Invoke();
                    IoCManager.BuildGraph();
                    //ServerProgram.SetupLogging();
                    ServerProgram.InitReflectionManager();

                    var server = DependencyCollection.Resolve <IBaseServerInternal>();

                    if (_options?.ServerContentAssembly != null)
                    {
                        IoCManager.Resolve <ModLoader>().ServerContentAssembly = _options.ServerContentAssembly;
                    }

                    if (_options?.SharedContentAssembly != null)
                    {
                        IoCManager.Resolve <ModLoader>().SharedContentAssembly = _options.SharedContentAssembly;
                    }

                    if (_options != null)
                    {
                        _options.BeforeStart?.Invoke();
                        IoCManager.Resolve <IConfigurationManager>()
                        .OverrideConVars(_options.CVarOverrides.Select(p => (p.Key, p.Value)));
                    }

                    if (server.Start(() => new TestLogHandler("SERVER")))
                    {
                        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));
            }
Ejemplo n.º 6
0
            private void _serverMain()
            {
                try
                {
                    IoCManager.InitThread(DependencyCollection);
                    ServerIoC.RegisterIoC();
                    IoCManager.Register <INetManager, IntegrationNetManager>(true);
                    IoCManager.Register <IServerNetManager, IntegrationNetManager>(true);
                    IoCManager.Register <IntegrationNetManager, IntegrationNetManager>(true);
                    IoCManager.Register <ISystemConsoleManager, SystemConsoleManagerDummy>(true);
                    IoCManager.Register <IModLoader, ModLoader>(true);
                    IoCManager.Register <ModLoader, ModLoader>(true);
                    _options?.InitIoC?.Invoke();
                    IoCManager.BuildGraph();
                    ServerProgram.SetupLogging();
                    ServerProgram.InitReflectionManager();

                    var server = DependencyCollection.Resolve <IBaseServerInternal>();

                    if (_options?.ServerContentAssembly != null)
                    {
                        IoCManager.Resolve <ModLoader>().ServerContentAssembly = _options.ServerContentAssembly;
                    }

                    if (_options?.SharedContentAssembly != null)
                    {
                        IoCManager.Resolve <ModLoader>().SharedContentAssembly = _options.SharedContentAssembly;
                    }

                    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));
            }
            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));
            }