예제 #1
0
    /// <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);
        }
    }
예제 #3
0
    /// <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);
    }
예제 #4
0
 public NodeEventData(Event evt, UTNodeEditorModel model, UTNode.Connector connector)
 {
     this.evt       = evt;
     this.model     = model;
     this.connector = connector;
 }
 public NodeEventData(Event evt, UTNodeEditorModel model, UTNode.Connector connector)
 {
     this.evt = evt;
     this.model = model;
     this.connector = connector;
 }