/// <summary> /// Handles removing the created connections when the operation is cancelled /// </summary> protected override void OnCancelled() { foreach (Connector connector in newConnections) { NodeEditor.RemoveConnector(connector); } }
/// <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; } } }
/// <summary> /// Aborts the active transition /// </summary> protected override void OnCancelled() { if (startNode != null) { NodeEditor.RemoveNode(startNode); NodeEditor.RemoveConnector(connection); } }
/// <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(); }