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); _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 _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)); }
public static void Run(Action postInit, InitialWindowParameters windowParameters = null) { IoCManager.InitThread(); ClientIoC.RegisterIoC(GameController.DisplayMode.Clyde); IoCManager.Register <IGameController, LiteGameController>(true); IoCManager.Register <IGameControllerInternal, LiteGameController>(true); IoCManager.Register <LiteGameController, LiteGameController>(true); IoCManager.BuildGraph(); var gc = IoCManager.Resolve <LiteGameController>(); gc.Startup(windowParameters); IoCManager.Resolve <ITaskManager>().RunOnMainThread(postInit); gc.MainLoop(GameController.DisplayMode.Clyde); IoCManager.Clear(); }
/// <summary> /// Registers all the types into the <see cref="IoCManager"/> with <see cref="IoCManager.Register{TInterface, TImplementation}"/> /// </summary> private void RegisterIoC() { switch (Project) { case UnitTestProject.Client: ClientIoC.RegisterIoC(GameController.DisplayMode.Headless); break; case UnitTestProject.Server: ServerIoC.RegisterIoC(); break; default: throw new NotSupportedException($"Unknown testing project: {Project}"); } OverrideIoC(); IoCManager.BuildGraph(); }