diff --git a/ProjectObsidian.SourceGenerators/BindingGenerator.cs b/ProjectObsidian.SourceGenerators/BindingGenerator.cs index 93fe080..f85f039 100644 --- a/ProjectObsidian.SourceGenerators/BindingGenerator.cs +++ b/ProjectObsidian.SourceGenerators/BindingGenerator.cs @@ -149,6 +149,7 @@ public string Result namespace {BindingPrefix}{_currentNameSpace}; +{_nodeOverloadAttribute} {_genericTypesAttribute} {_oldTypeNameAttribute} [Category(new string[] {{""ProtoFlux/Runtimes/Execution/Nodes/{_category}""}})] @@ -194,6 +195,7 @@ public override N Instantiate() private string _constraints = ""; private string _genericTypesAttribute; private string _oldTypeNameAttribute; + private string _nodeOverloadAttribute; private bool TypedFieldDetection(string type, string name, string targetTypeName, string declarationFormat, OrderedCount counter) { @@ -344,6 +346,13 @@ public override void VisitClassDeclaration(ClassDeclarationSyntax node) _nodeNameOverride = $" public override string NodeName => {findName.ArgumentList.Arguments.First().ToString()};"; + var findOverload = node.AttributeLists.SelectMany(i => i.Attributes) + .FirstOrDefault(i => i.Name.ToString() == "NodeOverload"); + + + if (findOverload?.ArgumentList != null) + _nodeOverloadAttribute = $"[Grouping({findOverload.ArgumentList.Arguments.First().ToString()})]"; + foreach (var u in _usingDeclarations) { var fullNameSpace = "";