protected override void OnConfigPinChanged() { if (IsConfigDefault()) { return; } DynamicPins.RemoveAllInput(); DynamicPins.RemoveAllOutput(); var ptypesnames = FSignature[0].Split('\\'); var typesnames = ptypesnames.Take(Math.Min(ptypesnames.Length, 7)).ToArray(); var typelist = typesnames.Select(tn => Type.GetType(tn, true)).ToArray(); var uglytuplebarebones = new [] { typeof(Tuple <>), typeof(Tuple <,>), typeof(Tuple <, ,>), typeof(Tuple <, , ,>), typeof(Tuple <, , , ,>), typeof(Tuple <, , , , ,>), typeof(Tuple <, , , , , ,>) }; TupleType = uglytuplebarebones[typesnames.Length - 1].MakeGenericType(typelist); DynamicPins.AddOutput(TupleType, new OutputAttribute("Output")); var item = 0; foreach (var t in typelist) { DynamicPins.AddInput(t, new InputAttribute("Item" + (item + 1))); item++; } }
protected override void OnConfigPinChanged() { if (IsConfigDefault()) { return; } DynamicPins.RemoveAllInput(); DynamicPins.RemoveAllOutput(); TupleType = TupleNodeHeper.MakeTupleFromSignature(FSignature[0], out var typeList); DynamicPins.AddOutput(TupleType, new OutputAttribute("Output")); var item = 0; foreach (var t in typeList) { DynamicPins.AddInput(t, new InputAttribute("Item" + (item + 1))); item++; } }