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(); } }
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; }
protected override void Process() { outputIndex = 0; output = input; }