internal State UpdateSaveState(SaveAndLoadDbManager databaseManager, IRepository <IPlayer> players,
                                IRepository <IEnemy> enemies, IRepository <IAsteroid> asteroids, UsersRepository usersRepository)
 {
     databaseManager.SaveGame(players, enemies, asteroids, usersRepository);
     Thread.Sleep(200);
     return(State.Pause);
 }
 public GameEngine()
 {
     this.starfield    = new StarField();
     this.inputHandler = new InputHandler();
     this.graphics     = new GraphicsDeviceManager(this)
     {
         IsFullScreen              = false,
         PreferredBackBufferWidth  = Globals.MAIN_SCREEN_WIDTH,
         PreferredBackBufferHeight = Globals.MAIN_SCREEN_HEIGHT
     };
     this.IsMouseVisible        = true;
     this.Window.Title          = "Traveling to FARCROTHU";
     this.Content.RootDirectory = "Content";
     this.mainMenuButtons       = new ButtonFactory();
     this.pauseMenuButtons      = new ButtonFactory();
     this.singleLoginButtons    = new ButtonFactory();
     this.loadButtons           = new LoadButtonFactory(new Vector2(900, 300));
     this.mainMenuForms         = new FormFactory();
     this.singleLoginForms      = new FormFactory();
     this.databaseManager       = new SaveAndLoadDbManager();
     this.userDbManager         = new UserDbManager();
     this.usersRepository       = new UsersRepository();
     this.updateStateManager    = new UpdateStateManager();
     this.drawObjectsManager    = new DrawGameObjectsManager();
     this.playManager           = new PlayGameManager();
 }
        internal State UpdateLoadGameMenu(LoadButtonFactory loadButtons, SaveAndLoadDbManager databaseManager, UsersRepository usersRepository, InputHandler inputHandler, IRepository <IPlayer> players, IRepository <IEnemy> enemies, IRepository <IAsteroid> asteroids, StarField starfield, GameTime gameTime)
        {
            int        gameId        = 0;
            MouseState mouseLoadGame = Mouse.GetState();

            loadButtons.CreateButtons(databaseManager.GetUserGamesId(usersRepository.GetAll()));
            gameId = loadButtons.ReturnGameId(mouseLoadGame);
            starfield.Update(gameTime);
            return(databaseManager.LoadGame(players, enemies, asteroids,
                                            inputHandler, usersRepository, gameId));
        }