コード例 #1
0
 /// <summary>
 /// Handles removing the created connections when the operation is cancelled
 /// </summary>
 protected override void OnCancelled()
 {
     foreach (Connector connector in newConnections)
     {
         NodeEditor.RemoveConnector(connector);
     }
 }
コード例 #2
0
        /// <summary>
        /// Handles checking for clicked nodes
        /// </summary>
        public override void BeforeEditorEvents()
        {
            CheckActivation();

            if (!IsActivated)
            {
                return;
            }

            if (Event.current.IsLeftClickEvent())
            {
                Node selectedNode = NodeEditor.GetNodeUnderMouse();

                if (selectedNode == null || !IsNodeValid(selectedNode))
                {
                    return;
                }

                MakeConnection(selectedNode);
            }
            else if (Event.current.IsRightClickEvent())
            {
                if (startNode != null)
                {
                    NodeEditor.RemoveConnector(connection);
                    startNode  = null;
                    connection = null;
                }
            }
        }
コード例 #3
0
 /// <summary>
 /// Aborts the active transition
 /// </summary>
 protected override void OnCancelled()
 {
     if (startNode != null)
     {
         NodeEditor.RemoveNode(startNode);
         NodeEditor.RemoveConnector(connection);
     }
 }
コード例 #4
0
        /// <summary>
        /// Checks for a destination node to attach the active connections to
        /// </summary>
        public override void BeforeEditorEvents()
        {
            if (!IsActivated)
            {
                return;
            }

            if (Event.current.IsRightClickEvent())
            {
                Cancel();
                return;
            }

            NodeEditor.FlagRepaint();

            if (!Event.current.IsLeftClickEvent())
            {
                return;
            }

            Node selectedNode = NodeEditor.GetNodeUnderMouse();

            if (!IsNodeValid(selectedNode))
            {
                return;
            }

            for (int i = 0; i < newConnections.Count; i++)
            {
                Connector connector = newConnections[i];

                if (!IsConnectionValid(connector.GetStartNode(), selectedNode))
                {
                    NodeEditor.RemoveConnector(connector);
                    newConnections.RemoveAt(i);
                    continue;
                }

                connector.RemoveNode(NodeEditor.MouseNode);
                connector.AddNode(selectedNode);
            }

            if (newConnections.Count > 0)
            {
                RaiseOnConnectionsFinalized(newConnections);
            }

            Deactivate();
        }