Exemple #1
0
        public void Startup(InitialWindowParameters windowParameters)
        {
            _logManager.RootSawmill.AddHandler(new ConsoleLogHandler());

            _taskManager.Initialize();

            _signalHandler.MaybeStart();

            _taskManager.Initialize();

            // TODO: Init user data maybe?
            _resourceCache.Initialize(null);

#if FULL_RELEASE
            _resourceCache.MountContentDirectory(@"Resources/");
#else
            _resourceCache.MountContentDirectory($@"../../RobustToolbox/Resources");
            _resourceCache.MountContentDirectory($@"../../Resources");
#endif

            _localizationManager.LoadCulture(CultureInfo.CurrentCulture);

            if (windowParameters?.Size != null)
            {
                var(w, h) = windowParameters.Size.Value;
                _configurationManager.SetCVar("display.width", w);
                _configurationManager.SetCVar("display.height", h);
            }

            _clyde.Initialize(true);
            if (windowParameters?.WindowTitle != null)
            {
                _clyde.SetWindowTitle(_localizationManager.GetString(windowParameters.WindowTitle));
            }

            _fontManager.Initialize();
            _clipboardManager.Initialize();

            _eyeManager.Initialize();

            _userInterfaceManager.Initialize();

            _inputManager.Initialize();

            _inputManager.AddClickBind();

            _clyde.Ready();
        }
        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();
        }