Example #1
0
        public FileMenuViewModel(ISkeletonGameProvider skeletonGameProvider, IGameRunnner gameRunnner, IAppSettingsModel appSettingsModel,
                                 IEventAggregator eventAggregator, IUnityContainer unityContainer, IRegionManager regionManager,
                                 ILoggerFacade loggerFacade) : base(eventAggregator, loggerFacade)
        {
            _skeletonGameProvider = skeletonGameProvider;
            _regionManager        = regionManager;
            _gameRunnner          = gameRunnner;
            _appSettingsModel     = appSettingsModel;
            _appSettingsModel.Load();

            if (_eventAggregator == null)
            {
                _eventAggregator = eventAggregator;
            }

            RecentDirectories = appSettingsModel.RecentDirectories;

            CreateNewGameRequest = new InteractionRequest <IRequestNewGame>();

            //Recent dirs
            //RecentDirectories.AddRange(new string[] { @"C:\P-ROC\Games\Jaws", @"C:\P-ROC\Games\EvilDead" });

            //Get the recordings stored from containers view model
            Recordings = unityContainer.Resolve <RecordingsViewModel>().PlaybackItemViewModels;
            _eventAggregator.GetEvent <OnLaunchGameEvent>().Subscribe(async(x) =>
            {
                IsGameRunning = true;
                await OnLaunchedGame();
            });

            #region Commands
            BrowseFolderCommand  = new DelegateCommand(() => FileFolder.Explore(_skeletonGameProvider.GameFolder), () => GameFolder != null);
            CreateNewGameCommand = new DelegateCommand(OnCreateNewGame, () => !IsGameRunning);
            ExportCommand        = new DelegateCommand <string>(OnExport, (x) => GameFolder != null);
            LaunchGameCommand    = new DelegateCommand(async() =>
            {
                IsGameRunning = true;
                await OnLaunchedGame();
            }, () => GameNotRunningAndFolderValid());
            LaunchRecordingCommand = new DelegateCommand <string>((playbackItem) => { OnLaunchRecordings(unityContainer, playbackItem); }, (x) => GameNotRunningAndFolderValid());
            LaunchToolCommand      = new DelegateCommand <string>((toolName) => { OnLaunchTool(toolName); }, (x) => GameFolder != null);

            OpenRecentCommand   = new DelegateCommand <string>(OnOpenRecent, (x) => !IsGameRunning);
            ReloadGameCommand   = new DelegateCommand(async() => await OnReloadGame(), () => GameNotRunningAndFolderValid());
            SetDirectoryCommand = new DelegateCommand(() => OnSetDirectory(), () => !IsGameRunning);

            NavigateCommand = new DelegateCommand <string>(OnNavigate, (x) => GameFolder != null);
            #endregion
        }
Example #2
0
 public void Save(IAppSettingsModel appSettings)
 {
     _appSettingsRepository.Save(appSettings);
 }