/// <summary> /// Initializes a new instance of StartMenuViewModel object. /// </summary> /// <param name="viewModelChanger">An object that changes the views in the application.</param> /// <param name="gameSerializer">An object that serializes the game state.</param> public StartMenuViewModel(IViewModelChanger viewModelChanger, IGameSerializer gameSerializer) : base("StartMenu") { if (viewModelChanger == null) { throw new ArgumentNullException(nameof(viewModelChanger)); } _viewModelChanger = viewModelChanger; if (gameSerializer == null) { throw new ArgumentNullException(nameof(gameSerializer)); } _gameSerializer = gameSerializer; }
/// <summary> /// Initializes a new instance of GameViewModel object. /// </summary> /// <param name="builder">An object that builds core game objects.</param> /// <param name="viewModelChanger">An object that changes views in the application.</param> /// <param name="accessor">An object that have access to control keys.</param> /// <param name="provider">An object that provides some configuration settings used in the game.</param> public GameViewModel(IGameBuilder builder, IViewModelChanger viewModelChanger, IHaveControlKeys accessor, ISettingsProvider provider) : base("Game") { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } _builder = builder; if (accessor == null) { throw new ArgumentNullException(nameof(accessor)); } _accessor = accessor; if (viewModelChanger == null) { throw new ArgumentNullException(nameof(viewModelChanger)); } _viewModelChanger = viewModelChanger; if (provider == null) { throw new ArgumentNullException(nameof(provider)); } _provider = provider; }