public ScriptNode Build() { var node = new ScriptNode(); node.Type = Type; node.Name = Name; if (OutputTypes.Any()) { node.Category = NodeCategory.Function; } else { node.Category = NodeCategory.Result; } node.InputPins.AddRange(InputPins.Select(_ => _.Clone())); node.OutputPins.AddRange(OutputPins.Select(_ => _.Clone())); return(node); }