コード例 #1
0
        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();
        }
コード例 #2
0
            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);
                });
            }
コード例 #3
0
 public override void InitData()
 {
     mGameConfigService = new GameConfigService();
 }
コード例 #4
0
        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();
            });
        }