public UserInterface(ILogger logger, ITime engineTime, IFileSystem fileSystem, ICommandContext commandContext, EngineClient client, EngineStartupState startupState, bool noOnTop, string windowTitle, SDL.SDL_WindowFlags additionalFlags = 0) { _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _fileSystem = fileSystem ?? throw new ArgumentNullException(nameof(fileSystem)); //Disable to prevent debugger from shutting down the game SDL.SDL_SetHint(SDL.SDL_HINT_WINDOWS_DISABLE_THREAD_NAMING, "1"); if (noOnTop) { SDL.SDL_SetHint(SDL.SDL_HINT_ALLOW_TOPMOST, "0"); } SDL.SDL_SetHint(SDL.SDL_HINT_VIDEO_X11_XRANDR, "1"); SDL.SDL_SetHint(SDL.SDL_HINT_VIDEO_X11_XVIDMODE, "1"); SDL.SDL_Init(SDL.SDL_INIT_EVERYTHING); Window = new Window(_logger, _fileSystem, windowTitle, additionalFlags); Window.Center(); Renderer = new Renderer(logger, engineTime, commandContext, fileSystem, this, client, startupState, Framework.Path.Shaders); }
public EngineServer(Host.Engine engine, ILogger logger, EngineStartupState startupState) { _engine = engine ?? throw new ArgumentNullException(nameof(engine)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); CommandContext = _engine.CommandSystem.CreateContext("ServerContext", _engine.EngineContext); startupState.PluginManager.AddAllAssembliesFromConfiguration(engine.EngineConfiguration.GameAssemblies, GameAssemblyTarget.Server); }