private void OnPlayGame(object argument) { IsInPlayMode = true; m_prePlayModeLevelReference = OpenedLevelAsset; UndoRedoModel.IsRecording = false; UndoRedoModel.Purge(null); CViewportViewModel viewport = GetTool <CViewportViewModel>(); viewport.IsVisible = true; viewport.IsActive = true; viewport.LockMouseCursor(); CEngine.Instance.Dispatch(EEngineUpdatePriority.BeginFrame, () => { CWorld world = CEngine.Instance.CurrentWorld; m_prePlayModeLevel = new CLevelAsset(world.LoadedLevel, "EditorTempLevel"); world.StartPlayMode(); Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (Action)(() => { })); }); }
private void InitCommands() { NewLevelCommand = new CRelayCommand(OnNewLevel); SaveLevelCommand = new CRelayCommand(OnSaveLevel, obj => OpenedLevelAsset != null); SaveLevelAsCommand = new CRelayCommand(OnSaveLevelAs); CloseCommand = new CRelayCommand(OnClose); SpawnEmptyEntity = new CRelayCommand(OnSpawnEmptyEntity); SpawnCubeEntity = new CRelayCommand(OnSpawnCubeEntity); UndoCommand = new CRelayCommand((arg) => { UndoRedoModel.Undo(); }, (arg) => { return(UndoRedoModel.CanUndo); }); RedoCommand = new CRelayCommand((arg) => { UndoRedoModel.Redo(); }, (arg) => { return(UndoRedoModel.CanRedo); }); PlayGameCommand = new CRelayCommand(OnPlayGame, CanPlayGame); StopGameCommand = new CRelayCommand(OnStopGame, CanStopGame); }