public GamePickerViewModel( GamePickerList gamePickerList, ActiveGameCategory activeGameCategory, LaunchGameService launchGameService, GameConfigService gameConfigService, FanGameEditingService fanGameEditingService ) { _gamePickerList = gamePickerList; _activeGameCategory = activeGameCategory; _launchGameService = launchGameService; _gameConfigService = gameConfigService; _fanGameEditingService = fanGameEditingService; MessengerInstance.Register <object?>(this, UpdateGamesToken, _ => UpdateGames()); GameButtons = new ObservableCollection <GameButton>(); UpdateGames(); }
public GameButton( Game game, GamePickerViewModel parent, LaunchGameService launchGameService, GameConfigService gameConfigService, FanGameEditingService fanGameEditingService ) { _game = game; _parent = parent; _launchGameService = launchGameService; _gameConfigService = gameConfigService; _fanGameEditingService = fanGameEditingService; Command = new RelayCommand(async() => { if (!string.IsNullOrEmpty(_game.FileLocation)) { var error = await _launchGameService.LaunchGame(_game); if (error != null) { MessageBox.Show(error.Message, "Error"); } } else { _gameConfigService.SetGameToConfigure(_game); new GameConfigWindow().ShowDialog(); } }); EditCommand = new RelayCommand(() => { _fanGameEditingService.SetFanGameToEdit((FanGame)_game); _parent.MessengerInstance.Send("FanGameEditorPage.xaml", MainViewModel.ChangePageMessageToken); }); }
public override void InitData() { mGameConfigService = new GameConfigService(); }
public GameConfigViewModel( GameConfigService gameConfigService, FileSystemBrowserService fileSystemBrowserService ) { _gameConfigService = gameConfigService; _fileSystemBrowserService = fileSystemBrowserService; ExternalLinkToGameDownloadCommand = new RelayCommand(() => { if (_gameConfigService.TargetGame is OfficialGame game) { Process.Start( new ProcessStartInfo("cmd", $"/c start {game.DownloadableFileLocation}") { CreateNoWindow = true } ); } }); BrowseCommand = new RelayCommand(() => { if (_gameConfigService.TargetGame == null) { return; } var browseResult = _gameConfigService.TargetGame.Categories.HasFlag(GameCategories.MainPC98) ? _fileSystemBrowserService.BrowseFiles( "Select game", new("Hard disk image files", "*.hdi", "*.t98"), new("All files", "*.*") ) : _fileSystemBrowserService.BrowseFiles( "Select game", new("Executable files", "*.exe"), new("All files", "*.*") ); if (browseResult == null) { return; } GameLocation = browseResult; RaisePropertyChanged(nameof(GameLocation)); }); OkCommand = new RelayCommand <Window>(async window => { var error = await _gameConfigService.SaveAsync(); if (error != null) { MessageBox.Show(error.Message, "Error"); return; } window.Close(); }); CancelCommand = new RelayCommand <Window>(window => { window.Close(); }); }