private void LoadRobustWebView(GameController.DisplayMode mode)
        {
            Logger.Debug("Loading Robust.Client.WebView");

            var assembly  = LoadRobustModuleAssembly("Robust.Client.WebView");
            var attribute = assembly.GetCustomAttribute <WebViewManagerImplAttribute>() !;

            DebugTools.AssertNotNull(attribute);

            var managerType = attribute.ImplementationType;

            _webViewHook = (IWebViewManagerHook)Activator.CreateInstance(managerType) !;
            _webViewHook.Initialize(mode);

            Logger.Debug("Done initializing Robust.Client.WebView");
        }
Ejemplo n.º 2
0
        public void Initialize(GameController.DisplayMode mode)
        {
            DebugTools.Assert(_impl == null, "WebViewManager has already been initialized!");

            IoCManager.RegisterInstance <IWebViewManager>(this);
            IoCManager.RegisterInstance <IWebViewManagerInternal>(this);

            if (mode == GameController.DisplayMode.Headless)
            {
                _impl = new WebViewManagerHeadless();
            }
            else
            {
                _impl = new WebViewManagerCef();
            }

            _impl.Initialize();
        }
        private void LoadOptionalRobustModules(GameController.DisplayMode mode)
        {
            // In the future, this manifest should be loaded somewhere else and used for more parts of init.
            // For now, this is fine.
            var manifest = LoadResourceManifest();

            foreach (var module in manifest.Modules)
            {
                switch (module)
                {
                case "Robust.Client.WebView":
                    LoadRobustWebView(mode);
                    break;

                default:
                    Logger.Error($"Unknown Robust module: {module}");
                    return;
                }
            }
        }
Ejemplo n.º 4
0
        public void MainLoop(GameController.DisplayMode mode)
        {
            _mainLoop = new GameLoop(_gameTiming);

            _mainLoop.Tick += (sender, args) =>
            {
                if (_mainLoop.Running)
                {
                    ProcessUpdate(args);
                }
            };

            _mainLoop.Render += (sender, args) =>
            {
                if (_mainLoop.Running)
                {
                    _gameTiming.CurFrame++;
                    _clyde.Render();
                }
            };
            _mainLoop.Input += (sender, args) =>
            {
                if (_mainLoop.Running)
                {
                    _clyde.ProcessInput(args);
                }
            };

            _mainLoop.Update += (sender, args) =>
            {
                if (_mainLoop.Running)
                {
                    RenderFrameProcess(args);
                }
            };

            _mainLoop.Run();
        }
Ejemplo n.º 5
0
        public static void RegisterIoC(GameController.DisplayMode mode)
        {
            SharedIoC.RegisterIoC();

            IoCManager.Register <IGameTiming, ClientGameTiming>();
            IoCManager.Register <IClientGameTiming, ClientGameTiming>();
            IoCManager.Register <IPrototypeManager, ClientPrototypeManager>();
            IoCManager.Register <IMapManager, ClientMapManager>();
            IoCManager.Register <IMapManagerInternal, ClientMapManager>();
            IoCManager.Register <IClientMapManager, ClientMapManager>();
            IoCManager.Register <IEntityManager, ClientEntityManager>();
            IoCManager.Register <IEntityLookup, EntityLookup>();
            IoCManager.Register <IReflectionManager, ClientReflectionManager>();
            IoCManager.Register <IConsoleHost, ClientConsoleHost>();
            IoCManager.Register <IClientConsoleHost, ClientConsoleHost>();
            IoCManager.Register <IComponentFactory, ClientComponentFactory>();
            IoCManager.Register <ITileDefinitionManager, ClydeTileDefinitionManager>();
            IoCManager.Register <IClydeTileDefinitionManager, ClydeTileDefinitionManager>();
            IoCManager.Register <GameController, GameController>();
            IoCManager.Register <IGameController, GameController>();
            IoCManager.Register <IGameControllerInternal, GameController>();
            IoCManager.Register <IResourceManager, ResourceCache>();
            IoCManager.Register <IResourceManagerInternal, ResourceCache>();
            IoCManager.Register <IResourceCache, ResourceCache>();
            IoCManager.Register <IResourceCacheInternal, ResourceCache>();
            IoCManager.Register <IClientNetManager, NetManager>();
            IoCManager.Register <IClientEntityManager, ClientEntityManager>();
            IoCManager.Register <IClientEntityManagerInternal, ClientEntityManager>();
            IoCManager.Register <IEntityNetworkManager, ClientEntityManager>();
            IoCManager.Register <IClientGameStateManager, ClientGameStateManager>();
            IoCManager.Register <IBaseClient, BaseClient>();
            IoCManager.Register <IPlayerManager, PlayerManager>();
            IoCManager.Register <ISharedPlayerManager, PlayerManager>();
            IoCManager.Register <IStateManager, StateManager>();
            IoCManager.Register <IUserInterfaceManager, UserInterfaceManager>();
            IoCManager.Register <IUserInterfaceManagerInternal, UserInterfaceManager>();
            IoCManager.Register <IDebugDrawing, DebugDrawing>();
            IoCManager.Register <IDebugDrawingManager, DebugDrawingManager>();
            IoCManager.Register <ILightManager, LightManager>();
            IoCManager.Register <IDiscordRichPresence, DiscordRichPresence>();
            IoCManager.Register <IMidiManager, MidiManager>();
            IoCManager.Register <IAuthManager, AuthManager>();
            switch (mode)
            {
            case GameController.DisplayMode.Headless:
                IoCManager.Register <IClyde, ClydeHeadless>();
                IoCManager.Register <IClipboardManager, ClydeHeadless>();
                IoCManager.Register <IClydeAudio, ClydeHeadless>();
                IoCManager.Register <IClydeInternal, ClydeHeadless>();
                IoCManager.Register <IInputManager, InputManager>();
                IoCManager.Register <IFileDialogManager, DummyFileDialogManager>();
                IoCManager.Register <IUriOpener, UriOpenerDummy>();
                break;

            case GameController.DisplayMode.Clyde:
                IoCManager.Register <IClyde, Clyde>();
                IoCManager.Register <IClipboardManager, Clyde>();
                IoCManager.Register <IClydeAudio, Clyde>();
                IoCManager.Register <IClydeInternal, Clyde>();
                IoCManager.Register <IInputManager, ClydeInputManager>();
                IoCManager.Register <IFileDialogManager, FileDialogManager>();
                IoCManager.Register <IUriOpener, UriOpener>();
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            IoCManager.Register <IFontManager, FontManager>();
            IoCManager.Register <IFontManagerInternal, FontManager>();
            IoCManager.Register <IEyeManager, EyeManager>();
            IoCManager.Register <IPlacementManager, PlacementManager>();
            IoCManager.Register <IOverlayManager, OverlayManager>();
            IoCManager.Register <IOverlayManagerInternal, OverlayManager>();
            IoCManager.Register <IViewVariablesManager, ViewVariablesManager>();
            IoCManager.Register <IViewVariablesManagerInternal, ViewVariablesManager>();
            IoCManager.Register <IClientConGroupController, ClientConGroupController>();
            IoCManager.Register <IScriptClient, ScriptClient>();
        }
Ejemplo n.º 6
0
 public void MainLoop(GameController.DisplayMode mode)
 {
 }
Ejemplo n.º 7
0
        public static void RegisterIoC(GameController.DisplayMode mode)
        {
            SharedIoC.RegisterIoC();

            IoCManager.Register <IPrototypeManager, PrototypeManager>();
            IoCManager.Register <IEntityManager, ClientEntityManager>();
            IoCManager.Register <IComponentFactory, ClientComponentFactory>();
            IoCManager.Register <ITileDefinitionManager, ClydeTileDefinitionManager>();
            IoCManager.Register <IClydeTileDefinitionManager, ClydeTileDefinitionManager>();
            IoCManager.Register <IGameController, GameController>();
            IoCManager.Register <IGameControllerInternal, GameController>();
            IoCManager.Register <IReflectionManager, ClientReflectionManager>();
            IoCManager.Register <IResourceManager, ResourceCache>();
            IoCManager.Register <IResourceManagerInternal, ResourceCache>();
            IoCManager.Register <IResourceCache, ResourceCache>();
            IoCManager.Register <IResourceCacheInternal, ResourceCache>();
            IoCManager.Register <IClientNetManager, NetManager>();
            IoCManager.Register <IClientEntityManager, ClientEntityManager>();
            IoCManager.Register <IEntityNetworkManager, ClientEntityNetworkManager>();
            IoCManager.Register <IClientGameStateManager, ClientGameStateManager>();
            IoCManager.Register <IBaseClient, BaseClient>();
            IoCManager.Register <IPlayerManager, PlayerManager>();
            IoCManager.Register <IStateManager, StateManager>();
            IoCManager.Register <IUserInterfaceManager, UserInterfaceManager>();
            IoCManager.Register <IUserInterfaceManagerInternal, UserInterfaceManager>();
            IoCManager.Register <IDebugDrawing, DebugDrawing>();
            IoCManager.Register <ILightManager, LightManager>();
            IoCManager.Register <IDiscordRichPresence, DiscordRichPresence>();
            IoCManager.Register <IClientConsole, ClientConsole>();
            IoCManager.Register <IFontManager, FontManager>();
            IoCManager.Register <IFontManagerInternal, FontManager>();
            switch (mode)
            {
            case GameController.DisplayMode.Headless:
                IoCManager.Register <IClyde, ClydeHeadless>();
                IoCManager.Register <IClydeAudio, ClydeHeadless>();
                IoCManager.Register <IClydeInternal, ClydeHeadless>();
                IoCManager.Register <IInputManager, InputManager>();
                IoCManager.Register <IFileDialogManager, DummyFileDialogManager>();
                IoCManager.Register <IUriOpener, UriOpenerDummy>();
                break;

            case GameController.DisplayMode.Clyde:
                IoCManager.Register <IClyde, Clyde>();
                IoCManager.Register <IClydeAudio, Clyde>();
                IoCManager.Register <IClydeInternal, Clyde>();
                IoCManager.Register <IInputManager, ClydeInputManager>();
                IoCManager.Register <IFileDialogManager, FileDialogManager>();
#if LINUX
                IoCManager.Register <IUriOpener, UriOpenerLinux>();
#elif MACOS
                IoCManager.Register <IUriOpener, UriOpenerMacOS>();
#elif WINDOWS
                IoCManager.Register <IUriOpener, UriOpenerWindows>();
#endif
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            IoCManager.Register <IEyeManager, EyeManager>();

            IoCManager.Register <IPlacementManager, PlacementManager>();
            IoCManager.Register <IOverlayManager, OverlayManager>();
            IoCManager.Register <IOverlayManagerInternal, OverlayManager>();
            IoCManager.Register <IViewVariablesManager, ViewVariablesManager>();
            IoCManager.Register <IViewVariablesManagerInternal, ViewVariablesManager>();

#if LINUX
            IoCManager.Register <IClipboardManager, ClipboardManagerLinux>();
            IoCManager.Register <IClipboardManagerInternal, ClipboardManagerLinux>();
#elif WINDOWS
            IoCManager.Register <IClipboardManager, ClipboardManagerWindows>();
            IoCManager.Register <IClipboardManagerInternal, ClipboardManagerWindows>();
#else
            IoCManager.Register <IClipboardManager, ClipboardManagerUnsupported>();
            IoCManager.Register <IClipboardManagerInternal, ClipboardManagerUnsupported>();
#endif

            IoCManager.Register <ISignalHandler, ClientSignalHandler>();
        }