/// <summary> /// Deletes the connection between a node's connector and the target node. /// </summary> /// <param name='connector'> /// Connector for which the connection should be deleted. /// </param> public void DeleteConnection(UTNode.Connector connector) { var sourceEntry = connector.owner.Data; var sourceNode = connector.owner; CUUndoUtility.RegisterUndo(new UObject[] { sourceEntry, graphData }, "Remove connector"); var reference = graphData.GetReference(connector.owner.Data, connector.property); SetProperty(sourceEntry, connector.property, null); sourceNode.Recalc(); graphData.DeleteReference(reference); EditorUtility.SetDirty(sourceEntry); EditorUtility.SetDirty(graphData); }
public void Connect(UTAutomationPlanEntry firstEntry, UTAutomationPlanEntry secondEntry) { var firstNode = Graph.GetNodeFor(firstEntry); var secondNode = Graph.GetNodeFor(secondEntry); // find the "nextEntry" connector of the first node UTNode.Connector nextEntryConnector = null; foreach (var connector in firstNode.Connectors) { if (connector.property == "nextEntry") { nextEntryConnector = connector; break; } } if (nextEntryConnector != null) { AddConnection(nextEntryConnector, secondNode); } }
/// <summary> /// Adds a connection between a node's connector and another node. /// </summary> /// <param name='sourceConnector'> /// Source connector. /// </param> /// <param name='targetNode'> /// Target node. /// </param> public void AddConnection(UTNode.Connector sourceConnector, UTNode targetNode) { var sourceEntry = sourceConnector.owner.Data; var property = sourceConnector.property; var targetEntry = targetNode.Data; var sourceNode = sourceConnector.owner; CUUndoUtility.RegisterUndo(new UObject[] { sourceEntry, graphData }, "Add connector"); var reference = graphData.GetReference(sourceEntry, property); if (reference == null) { reference = new UTReference(); reference.Source = sourceEntry; reference.SourceProperty = property; graphData.AddReference(reference); } reference.Target = targetEntry; SetProperty(sourceEntry, property, targetEntry); sourceNode.Recalc(); EditorUtility.SetDirty(sourceEntry); EditorUtility.SetDirty(graphData); }
public NodeEventData(Event evt, UTNodeEditorModel model, UTNode.Connector connector) { this.evt = evt; this.model = model; this.connector = connector; }