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"); }
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; } } }
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(); }
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>(); }
public void MainLoop(GameController.DisplayMode mode) { }
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>(); }