summaryrefslogtreecommitdiff
path: root/Other/NodeEditorExamples/Assets/UNEB/Editor/Actions/DragNode.cs
blob: 9e4d89d03288ccb68690ceb9bf8ea124267045e0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42

using UnityEngine;

namespace UNEB
{
    public class DragNode : MultiStageAction
    {
        private Node _draggingNode;

        private Vector2 _startDragPos, _endDragPos;

        public const float dragSpeed = 1f;

        public override void Undo()
        {
            _draggingNode.bodyRect.position = _startDragPos;
        }

        public override void Redo()
        {
            _draggingNode.bodyRect.position = _endDragPos;
        }

        public override void Do()
        {
            NodeEditor editor = manager.window.editor;
            _draggingNode.bodyRect.position += Event.current.delta * editor.ZoomScale * dragSpeed;
        }

        public override void OnActionStart()
        {
            _draggingNode = manager.window.state.selectedNode;
            _startDragPos = _draggingNode.bodyRect.position;
        }

        public override bool OnActionEnd()
        {
            _endDragPos = _draggingNode.bodyRect.position;
            return true;
        }
    }
}