Exemplo n.º 1
0
    public void GetInputs(List <SerializableEdge> edges)
    {
        inputEdgeCount = edges.Count;
        UpdateAllPorts();

        // If the relay is only connected to another relay:
        if (edges.Count == 1 && edges.First().outputNode.GetType() == typeof(RelayNode))
        {
            input = (PackedRelayData)edges.First().passThroughBuffer;
        }
        else
        {
            input.values = edges.Select(e => e.passThroughBuffer).ToList();
            input.names  = edges.Select(e => e.outputPort.portData.displayName).ToList();
            input.types  = edges.Select(e => e.outputPort.portData.displayType ?? e.outputPort.fieldInfo.FieldType).ToList();
        }
    }
Exemplo n.º 2
0
    protected override void Process()
    {
        input.values.Clear();
        List <SerializableEdge> edges = this.inputPorts[0].GetEdges();

        inputEdgeCount = edges.Count;

        // If the relay is only connected to another relay:
        if (inputEdgeCount == 1 && edges.First().outputNode.GetType() == typeof(RelayNode))
        {
            TryGetInputValue(nameof(input), ref input);
        }
        else
        {
            IEnumerable <object> inputValues = TryGetAllInputValues <object>(nameof(input));
            inputValues.ForEach(value => input.values.Add(value));
            input.names = edges.Select(e => e.outputPort.portData.displayName).ToList();
            input.types = edges.Select(e => e.outputPort.portData.displayType ?? e.outputPort.fieldInfo.FieldType).ToList();
        }

        output = input;
    }
Exemplo n.º 3
0
 protected override void Process()
 {
     outputIndex = 0;
     output      = input;
 }