public MainWindowViewModel(IEventAggregator eventAggregator, ISkeletonGameProvider skeletonGameProvider,
                                   ISkeletonLogger skeletonLogger, ILoggerFacade loggerFacade, IRegionManager regionManager) : base(eventAggregator, loggerFacade)
        {
            _skeletonGameProvider = skeletonGameProvider;
            _skeletonGameProvider.StatusChanged += _skeletonGameProvider_StatusChanged;
            _regionManager = regionManager;

            IsGameRunning = false;

            OpenFileFolderCommand = new DelegateCommand <string>(OnOpenFileFolder);

            CloseTabCommand = new DelegateCommand <object>(OnCloseTab);

            Log("".PadRight(25, '*'));
            Log($"Skeleton Game Manager : {SkeletonGameManager.Base.Helpers.Versions.GetVersion()}");
            Log("".PadRight(25, '*'));

            NotificationRequest = new InteractionRequest <INotification>();

            eventAggregator.GetEvent <ErrorMessageEvent>().Subscribe((x) =>
            {
                NotificationRequest.Raise(new Notification
                {
                    Content = x,
                    Title   = "Error"
                });
            }, ThreadOption.UIThread);
        }
Example #2
0
        public ScoreLayoutViewModel(IEventAggregator eventAggregator, ISkeletonGameProvider skeletonGameProvider, ILoggerFacade loggerFacade) : base(eventAggregator, loggerFacade)
        {
            //TODO: Animations dropdown not updating if user adds to asset list or saves.
            Title = "Score Display";

            _skeletonGameProvider = skeletonGameProvider;

            //Save new_score_display.yaml
            SaveCommand = new DelegateCommand(() =>
            {
                OnSaveCommand();
            });

            _eventAggregator.GetEvent <LoadYamlFilesChanged>().Subscribe(async x =>
            {
                try
                {
                    await OnLoadYamlFilesChanged();
                }
                catch (System.Exception ex)
                {
                    throw;
                }
            }
                                                                         );
        }
Example #3
0
        public AnimationsViewModel(ISkeletonGameFiles skeletonGameFiles, ISkeletonGameProvider skeletonGameProvider, IEventAggregator eventAggregator, ILoggerFacade loggerFacade) : base(eventAggregator, loggerFacade)
        {
            _skeletonGameFiles    = skeletonGameFiles;
            _skeletonGameProvider = skeletonGameProvider;

            Title = "Animations";

            OpenDirectoryCommand = new DelegateCommand(() => OpenDirectory(_dmdPath.AbsolutePath));
            OpenFileCommand      = new DelegateCommand <string>(x => OpenDirectory(Path.Combine(_dmdPath.AbsolutePath, x)));
        }
        public VpLogViewModel(ISkeletonGameProvider skeletonGameProvider,
                              IEventAggregator eventAggregator, ILoggerFacade loggerFacade) : base(eventAggregator, loggerFacade)
        {
            Title = "VP Log";

            LogPath       = @"C:\P-ROC\Shared\log.txt";
            this.LogLines = new System.Collections.ObjectModel.ObservableCollection <LogViewer.Log>();

            GetLogs();
        }
        public FontsViewModel(ISkeletonGameFiles skeletonGameFiles, ISkeletonGameProvider skeletonGameProvider, IEventAggregator eventAggregator, ILoggerFacade loggerFacade)
            : base(eventAggregator, loggerFacade)
        {
            _skeletonGameProvider = skeletonGameProvider;
            _skeletonGameFiles    = skeletonGameFiles;

            Title = "Fonts";

            OpenDirectoryCommand = new DelegateCommand(() => OpenDirectory(_fontPath.AbsolutePath));
        }
        public MachineConfigViewModel(IEventAggregator eventAggregator, ISkeletonGameProvider skeletonGameProvider,
                                      ISkeletonOSC skeletonOSC, ILoggerFacade loggerFacade) : base(eventAggregator, loggerFacade)
        {
            Title = "Machine";

            _skeletonGameProvider = skeletonGameProvider;
            _skeletonOSC          = skeletonOSC;

            _eventAggregator.GetEvent <LoadYamlFilesChanged>().Subscribe(async x => await OnLoadYamlFilesChanged());

            SaveMachineConfigCommand = new DelegateCommand(() =>
            {
                try
                {
                    SaveMachineConfig();
                }
                catch (Exception ex)
                {
                    var msg = $"Error saving machine configuration. {ex.Message}";
                    Log(msg, Category.Exception);
                    _eventAggregator.GetEvent <ErrorMessageEvent>().Publish(msg);
                }
            });

            SendOscMessageCommand = new DelegateCommand <object>((x) =>
            {
                try
                {
                    var obj = x as SwitchViewModel;

                    SwitchViewModel pushedSwitch = null;
                    if (obj.Number.Contains("D"))
                    {
                        pushedSwitch = this.DedicatedSwitches.First((c) => c == obj);
                    }
                    else
                    {
                        pushedSwitch = this.Switches.First((c) => c == obj);
                    }

                    pushedSwitch.State = !pushedSwitch.State;

                    var value = 0.0f;
                    if (pushedSwitch.State)
                    {
                        value = 1.0f;
                    }

                    _skeletonOSC.Send($@"/sw/{pushedSwitch.Name}", value);
                }
                catch { }
            });

            InitializeCollections();
        }
Example #7
0
        public SkeletonGameLogViewModel(ISkeletonGameProvider skeletonGameProvider, IEventAggregator eventAggregator, ILoggerFacade loggerFacade) : base(eventAggregator, loggerFacade)
        {
            Title                  = "Game logs";
            this.LogLines          = new System.Collections.ObjectModel.ObservableCollection <LogViewer.Log>();
            LogLinesCollectionView = new ListCollectionView(this.LogLines);

            _skeletonGameProvider = skeletonGameProvider;

            _eventAggregator.GetEvent <LoadYamlFilesChanged>().Subscribe(async x => await OnLoadYamlFilesChanged());

            _eventAggregator.GetEvent <OnGameEndedEvent>().Subscribe(OnGameEnded);
        }
        public SceneProcessViewModel(IEventAggregator eventAggregator, ISkeletonGameProvider skeletonGameProvider, ILoggerFacade loggerFacade)
            : base(eventAggregator, loggerFacade)
        {
            _skeletonGameProvider = skeletonGameProvider;
            _eventAggregator.GetEvent <VideoProcessItemAddedEvent>().Subscribe(OnVideoProcessAdded);
            _eventAggregator.GetEvent <VideoProcessItemRemoveEvent>().Subscribe(x => this.VideoProcessItems.Remove(x));

            ProcessListCommand = new DelegateCommand(async() => await ProcessList());

            VideoProcessItems = new ObservableCollection <SceneProcessItemViewModel>();

            _ffmpeg = ConfigurationManager.AppSettings["ffmpegRoot"];
        }
        public SceneMediaViewModel(IEventAggregator eventAggregator, ISkeletonGameProvider skeletonGameProvider, ILoggerFacade loggerFacade)
            : base(eventAggregator, loggerFacade)
        {
            _skeletonGameProvider = skeletonGameProvider;

            MarkVideoRangeCommand     = new DelegateCommand <string>(MarkVideoRange);
            MediaElementLoadedCommand = new DelegateCommand <IMediaPlayer>(MediaElementLoaded);
            VideoControlCommand       = new DelegateCommand <string>(OnVideoControl);

            _eventAggregator.GetEvent <VideoSourceEvent>().Subscribe(OnVideoSourceUpdated);

            //Add the selection start and end to process list
            AddToProcessListCommand = new DelegateCommand(AddToProcessList);
        }
        public SoundViewModel(ISkeletonGameFiles skeletonGameFiles, ISkeletonGameProvider skeletonGameProvider, IEventAggregator eventAggregator, ILoggerFacade loggerFacade) : base(eventAggregator, loggerFacade)
        {
            _skeletonGameFiles    = skeletonGameFiles;
            _skeletonGameProvider = skeletonGameProvider;

            Title = "Sound";

            OpenSoundCommand = new DelegateCommand <string>((s) =>
            {
                Process.Start(s);
            });

            OpenDirectoryCommand = new DelegateCommand(() => OpenDirectory(_audioPathFull.AbsolutePath));
        }
Example #11
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 #12
0
        public GameConfigViewModel(IEventAggregator ea, ISkeletonGameProvider skeletonGameProvider, IUnityContainer unityContainer, ILoggerFacade loggerFacade) : base(ea, loggerFacade)
        {
            Title    = "Game Config";
            FileName = "config.yaml";

            _skeletonGameProvider = skeletonGameProvider;
            _unityContainer       = unityContainer;

            KeyboardMappingsVm = _unityContainer.Resolve <KeyboardMappingsViewModel>();

            _eventAggregator.GetEvent <LoadYamlFilesChanged>().Subscribe(async x => await OnLoadYamlFilesChanged());

            SaveCommand = new DelegateCommand(OnSaveInvoked, () => GameConfigModel == null ? false : true);

            Log("Iniitalized Game Config", Category.Debug);
        }
        public TrophyDataViewModel(IEventAggregator eventAggregator, ISkeletonGameProvider skeletonGameProvider, ILoggerFacade loggerFacade) : base(eventAggregator, loggerFacade)
        {
            _skeletonGameProvider = skeletonGameProvider;

            Title = "Trophy";

            _eventAggregator.GetEvent <LoadYamlFilesChanged>().Subscribe(async x => await OnLoadYamlFilesChanged());

            CreateTrophyCommand = new DelegateCommand(() =>
            {
                OnCreateTrophy();
            });

            SaveCommand = new DelegateCommand(() =>
            {
                _skeletonGameProvider.SaveTrophyData(TrophyData);
            });
        }
        public KeyboardMappingsViewModel(IEventAggregator eventAggregator, ISkeletonGameProvider skeletonGameProvider, ILoggerFacade loggerFacade)
            : base(eventAggregator, loggerFacade)
        {
            _skeletonGameProvider = skeletonGameProvider;

            AddUnusedSwitchCommand = new DelegateCommand <PRSwitch>(AddToUnusedSwitch);

            _eventAggregator.GetEvent <LoadYamlFilesChanged>().Subscribe(async x =>
            {
                try
                {
                    await OnLoadYamlFilesChanged();
                }
                catch (System.Exception ex)
                {
                    Log(ex.Message, Category.Exception);
                }
            }, ThreadOption.UIThread);
        }
Example #15
0
        public LampshowViewModel(ISkeletonGameFiles skeletonGameFiles, ISkeletonGameProvider skeletonGameProvider, IEventAggregator eventAggregator, ILoggerFacade loggerFacade) : base(eventAggregator, loggerFacade)
        {
            _skeletonGameFiles    = skeletonGameFiles;
            _skeletonGameProvider = skeletonGameProvider;
            _lampshowEdit         = new LampshowEdit();

            Title = "Lampshows";

            OpenDirectoryCommand   = new DelegateCommand(() => OpenDirectory(_lampshowPath));
            ReverseLampshowCommand = new DelegateCommand <string>((x) =>
            {
                if (x != null)
                {
                    OnReverseLampshow(new LampShow()
                    {
                        File = x
                    });
                }
            });
        }
Example #16
0
        public RecordingsViewModel(IEventAggregator eventAggregator, ISkeletonGameProvider skeletonGameProvider, ILoggerFacade loggerFacade) : base(eventAggregator, loggerFacade)
        {
            _skeletonGameProvider = skeletonGameProvider;

            Title = "Recordings";

            #region Commands
            LaunchGameCommand = new DelegateCommand(() =>
            {
                LaunchGame(this.PlaybackItemViewModel);
            }, () => _launchCommandEnabled);

            RefreshRecordingsCommand = new DelegateCommand(PopulateRecordings);
            #endregion

            _eventAggregator.GetEvent <LoadYamlFilesChanged>().Subscribe(async x => await OnLoadYamlFilesChanged());

            _eventAggregator.GetEvent <OnGameEndedEvent>().Subscribe(x =>
            {
                OnGameEndedEventChanged(x);
            });
        }
        public AssetListViewModel(IRegionManager regionManager, IUnityContainer unityContainer, IEventAggregator eventAggregator,
                                  ISkeletonGameProvider skeletonGameProvider, ISkeletonGameFiles skeletonGameFiles, ILoggerFacade loggerFacade) :
            base(eventAggregator, loggerFacade)
        {
            Title = "Assets";

            _regionManager        = regionManager;
            _unityContainer       = unityContainer;
            _skeletonGameProvider = skeletonGameProvider;
            _skeletonGameFiles    = skeletonGameFiles;

            _eventAggregator.GetEvent <LoadYamlFilesChanged>().Subscribe(async x => await OnLoadYamlFilesChanged());

            #region Commands
            CloseTabCommand   = new DelegateCommand <object>(OnCloseTab);
            SaveCommand       = new DelegateCommand(() => { OnSaveAssetLists(); }, () => AssetsFile == null ? false : true);
            SwitchViewCommand = new DelegateCommand <string>(OnSwitchView);
            #endregion

            //Set the main assets view
            _regionManager.RequestNavigate(Regions.AssetDetailRegion, "AssetDetailsView");
        }
        //TODO: Duplicate layers

        #region Constructors
        public AttractViewModel(ISkeletonGameSerializer skeletonGameSerializer, IEventAggregator eventAggregator, ISkeletonGameProvider skeletonGameProvider, ILoggerFacade loggerFacade) : base(skeletonGameSerializer, eventAggregator, loggerFacade)
        {
            Title = "Sequences";

            _skeletonGameProvider = skeletonGameProvider;
            _skeletonGameAttract  = new SkeletonGameAttract();

            Sequences = new ObservableCollection <SequenceItemViewModel>();
            Sequences.CollectionChanged     += Sequences_CollectionChanged;
            SequenceYamls.CollectionChanged += SequenceYamls_CollectionChanged;

            _eventAggregator.GetEvent <LoadYamlFilesChanged>().Subscribe(async x => await OnLoadYamlFilesChanged());

            SaveAttractCommand = new DelegateCommand(() =>
            {
                OnSaveAttract();
            });

            DuplicateSequenceCommand = new DelegateCommand <SequenceItemViewModel>((x) =>
            {
                if (x != null)
                {
                    OnDuplicateSequence(x);
                }
            });

            AddNewSequenceCommand = new DelegateCommand <object>((x) =>
            {
                OnAddSequence(x);
            });

            AddLayerCommand = new DelegateCommand <object>((x) =>
            {
                OnAddLayer(x);
            });
        }
 public SequenceCreateViewModel(ISkeletonGameSerializer skeletonGameSerializer, IEventAggregator eventAggregator, ISkeletonGameProvider skeletonGameProvider,
                                ILoggerFacade loggerFacade) : base(skeletonGameSerializer, eventAggregator, loggerFacade)
 {
 }
 public SfxViewModel(ISkeletonGameFiles skeletonGameFiles, ISkeletonGameProvider skeletonGameProvider, IEventAggregator eventAggregator, ILoggerFacade loggerFacade) : base(skeletonGameFiles, skeletonGameProvider, eventAggregator, loggerFacade)
 {
     Title = "Sfx";
 }