protected override void Initialize() { //uncomment it and fill it to save your first settings //Settings settings1 = new Settings() //{ //}; //ConfigurationResolver.Save(settings1, "settings.json"); Settings settings = ConfigurationResolver.Load <Settings>(Path.Combine(Bootstrap.ExeDirectory, "settings.json")); Service.Register(settings); Log.Message(LogTypes.Trace, "Checking for Ultima Online installation..."); try { FileManager.UoFolderPath = settings.UltimaOnlineDirectory; } catch (FileNotFoundException e) { Log.Message(LogTypes.Error, "Wrong Ultima Online installation folder."); throw e; } Log.Message(LogTypes.Trace, "Done!"); Log.Message(LogTypes.Trace, $"Ultima Online installation folder: {FileManager.UoFolderPath}"); Log.Message(LogTypes.Trace, "Loading files..."); Stopwatch stopwatch = Stopwatch.StartNew(); FileManager.LoadFiles(); uint[] hues = Hues.CreateShaderColors(); Texture2D texture0 = new Texture2D(GraphicsDevice, 32, 3000); texture0.SetData(hues, 0, 32 * 3000); Texture2D texture1 = new Texture2D(GraphicsDevice, 32, 3000); texture1.SetData(hues, 32 * 3000, 32 * 3000); GraphicsDevice.Textures[1] = texture0; GraphicsDevice.Textures[2] = texture1; Log.Message(LogTypes.Trace, $"Files loaded in: {stopwatch.ElapsedMilliseconds} ms!"); stopwatch.Stop(); //Register Service Stack Service.Register(this); Service.Register(new SpriteBatch3D(GraphicsDevice)); Service.Register(new SpriteBatchUI(GraphicsDevice)); Service.Register(new InputManager()); Service.Register(_uiManager = new UIManager()); Service.Register(_sceneManager = new SceneManager()); Service.Register(_journalManager = new JournalData()); //Register Command Stack PartySystem.RegisterCommands(); _inputManager = Service.Get <InputManager>(); _sb3D = Service.Get <SpriteBatch3D>(); _sbUI = Service.Get <SpriteBatchUI>(); Log.Message(LogTypes.Trace, "Network calibration..."); PacketHandlers.Load(); PacketsTable.AdjustPacketSizeByVersion(FileManager.ClientVersion); Log.Message(LogTypes.Trace, "Done!"); MaxFPS = settings.MaxFPS; _sceneManager.ChangeScene(ScenesType.Login); _infoText = new RenderedText { IsUnicode = true, Font = 3, FontStyle = FontStyle.BlackBorder, Align = TEXT_ALIGN_TYPE.TS_LEFT, MaxWidth = 150 }; base.Initialize(); }