Beispiel #1
0
        public static UndoRedoStackData GetUndoData()
        {
            UndoRedoStackData _retVal = _undoList[_undoList.Count - 1];

            _undoList.RemoveAt(_undoList.Count - 1);
            return(_retVal);
        }
Beispiel #2
0
        // -------------------- Undo / Redo Sequence --------------------
        public static void UndoSequence()
        {
            UndoRedoStackData _undoData = GetUndoData();

            switch (_undoData.TargetWorkType)
            {
            case UndoRedoWorkType.GraphCreate:
            {
                GraphDeleteSequence(_undoData.TargetGraphUID, false);
                break;
            }

            case UndoRedoWorkType.GraphDelete:
            {
                switch (_undoData.TargetGraphType)
                {
                case GraphType.Scene:
                    currentVinove.RestoreGraph(_undoData.TargetScene);
                    break;

                case GraphType.Branch:
                    currentVinove.RestoreGraph(_undoData.TargetBranch);
                    break;

                case GraphType.Merge:
                    currentVinove.RestoreGraph(_undoData.TargetMerge);
                    break;

                case GraphType.Script:
                    currentVinove.RestoreGraph(_undoData.TargetScript);
                    break;
                }
                break;
            }

            case UndoRedoWorkType.GraphMove:
            {
                switch (_undoData.TargetGraphType)
                {
                case GraphType.Scene:
                    currentVinove.FindSceneWithUID(_undoData.TargetGraphUID).Position = _undoData.TargetScene.Position;
                    break;

                case GraphType.Branch:
                    currentVinove.FindBranchWithUID(_undoData.TargetGraphUID).Position = _undoData.TargetBranch.Position;
                    break;

                case GraphType.Merge:
                    currentVinove.FindMergeWithUID(_undoData.TargetGraphUID).Position = _undoData.TargetMerge.Position;
                    break;

                case GraphType.Script:
                    currentVinove.FindSceneWithUID(_undoData.TargetScript.ParentSceneUID).FindScriptWithUID(_undoData.TargetGraphUID).Position = _undoData.TargetScript.Position;
                    break;
                }
                break;
            }
            }
        }
Beispiel #3
0
        /// <summary>
        /// <para>Eng. Push 'Move' into Undo Stack </para>
        /// <para>Kor. Undo 스택에 '이동' 스택을 넣습니다. </para>
        /// </summary>
        /// <param name="_targetUID">
        /// <para>Eng. Target Graph UID </para>
        /// <para>Kor. 대상 그래프의 UID 입니다. </para></param>
        /// <param name="_script">
        /// <para>Eng. Target Graph Data </para>
        /// <para>Kor. 대상 그래프 데이터입니다. </para></param>
        public static void UndoStackMove(string _targetUID, VinoveScript _script)
        {
            UndoRedoStackData _stackData = new UndoRedoStackData(UndoRedoWorkType.GraphMove, GraphType.Script, _targetUID);

            _stackData.SetGraphData(_script);

            AddUndoData(_stackData);
        }
Beispiel #4
0
        /// <summary>
        /// <para>Eng. Push 'Move' into Undo Stack </para>
        /// <para>Kor. Undo 스택에 '이동' 스택을 넣습니다. </para>
        /// </summary>
        /// <param name="_targetUID">
        /// <para>Eng. Target Graph UID </para>
        /// <para>Kor. 대상 그래프의 UID 입니다. </para></param>
        /// <param name="_merge">
        /// <para>Eng. Target Graph Data </para>
        /// <para>Kor. 대상 그래프 데이터입니다. </para></param>
        public static void UndoStackMove(string _targetUID, VinoveMerge _merge)
        {
            UndoRedoStackData _stackData = new UndoRedoStackData(UndoRedoWorkType.GraphMove, GraphType.Merge, _targetUID);

            _stackData.SetGraphData(_merge);

            AddUndoData(_stackData);
        }
Beispiel #5
0
        /// <summary>
        /// <para>Eng. Push 'Move' into Undo Stack </para>
        /// <para>Kor. Undo 스택에 '이동' 스택을 넣습니다. </para>
        /// </summary>
        /// <param name="_targetUID">
        /// <para>Eng. Target Graph UID </para>
        /// <para>Kor. 대상 그래프의 UID 입니다. </para></param>
        /// <param name="_branch">
        /// <para>Eng. Target Graph Data </para>
        /// <para>Kor. 대상 그래프 데이터입니다. </para></param>
        public static void UndoStackMove(string _targetUID, VinoveBranch _branch)
        {
            UndoRedoStackData _stackData = new UndoRedoStackData(UndoRedoWorkType.GraphMove, GraphType.Branch, _targetUID);

            _stackData.SetGraphData(_branch);

            AddUndoData(_stackData);
        }
Beispiel #6
0
        // -------------------- Undo - Delete --------------------

        /// <summary>
        /// <para>Eng. Push 'Delete' into Undo Stack </para>
        /// <para>Kor. Undo 스택에 '삭제' 스택을 넣습니다. </para>
        /// </summary>
        /// <param name="_targetUID">
        /// <para>Eng. Target Graph UID </para>
        /// <para>Kor. 대상 그래프의 UID 입니다. </para></param>
        /// <param name="_scene">
        /// <para>Eng. Target Graph Data </para>
        /// <para>Kor. 대상 그래프 데이터입니다. </para></param>
        public static void UndoStackDelete(string _targetUID, VinoveScene _scene)
        {
            UndoRedoStackData _stackData = new UndoRedoStackData(UndoRedoWorkType.GraphDelete, GraphType.Scene, _targetUID);

            _stackData.SetGraphData(_scene);

            AddUndoData(_stackData);
        }
Beispiel #7
0
 public static void AddUndoData(UndoRedoStackData _stackData)
 {
     if (_undoList.Count < 20)
     {
         _undoList.Add(_stackData);
     }
     else
     {
         _undoList.RemoveAt(0);
         _undoList.Add(_stackData);
     }
 }