C#: Add global class support

Co-authored-by: willnationsdev <willnationsdev@gmail.com>
This commit is contained in:
Raul Santos 2023-02-02 00:54:16 +01:00
parent 2eec9a67d5
commit a1f454fee3
No known key found for this signature in database
GPG key ID: B532473AE3A803E4
15 changed files with 201 additions and 25 deletions

View file

@ -547,25 +547,32 @@ namespace Godot.SourceGenerators
{
if (memberNamedType.InheritsFrom("GodotSharp", "Godot.Resource"))
{
string nativeTypeName = memberNamedType.GetGodotScriptNativeClassName()!;
hint = PropertyHint.ResourceType;
hintString = nativeTypeName;
hintString = GetTypeName(memberNamedType);
return true;
}
if (memberNamedType.InheritsFrom("GodotSharp", "Godot.Node"))
{
string nativeTypeName = memberNamedType.GetGodotScriptNativeClassName()!;
hint = PropertyHint.NodeType;
hintString = nativeTypeName;
hintString = GetTypeName(memberNamedType);
return true;
}
}
static string GetTypeName(INamedTypeSymbol memberSymbol)
{
if (memberSymbol.GetAttributes()
.Any(a => a.AttributeClass?.IsGodotGlobalClassAttribute() ?? false))
{
return memberSymbol.Name;
}
return memberSymbol.GetGodotScriptNativeClassName()!;
}
static bool GetStringArrayEnumHint(VariantType elementVariantType,
AttributeData exportAttr, out string? hintString)
{