From 06ef8f6458135614efecf7f121b5c64d6d989ebf Mon Sep 17 00:00:00 2001 From: Grand Date: Fri, 3 Oct 2025 02:53:06 +0100 Subject: [PATCH] Added NodeOverload attribute handling to Generator --- ProjectObsidian.SourceGenerators/BindingGenerator.cs | 9 +++++++++ 1 file changed, 9 insertions(+) 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 = "";