- Create CSharpScript for generic C# types. - `ScriptPathAttributeGenerator` registers the path for the generic type definition. - `ScriptManagerBridge` lookup uses the generic type definition that was registered by the generator. - Constructed generic types use a virtual `csharp://` path so they can be registered in the map and loaded as if there was a different file for each constructed type, even though they all share the same real path. - This allows getting the base type for a C# type that derives from a generic type. - Shows base scripts in the _Add Node_ and _Create Resource_ dialogs even when they are generic types. - `get_global_class_name` implementation was moved to C# and now always returns the base type even if the script is not a global class (this behavior matches GDScript). - Create `CSharpScript::TypeInfo` struct to hold all the type information about the C# type that corresponds to the `CSharpScript`, and use it as the parameter in `UpdateScriptClassInfo` to avoid adding more parameters. |
||
|---|---|---|
| .. | ||
| CodeAnalysisAttributes.cs | ||
| Common.cs | ||
| EventHandlerSuffixSuppressor.cs | ||
| ExtensionMethods.cs | ||
| GlobalClassAnalyzer.cs | ||
| Godot.SourceGenerators.csproj | ||
| Godot.SourceGenerators.props | ||
| GodotClasses.cs | ||
| GodotEnums.cs | ||
| GodotMemberData.cs | ||
| GodotPluginsInitializerGenerator.cs | ||
| Helper.cs | ||
| MarshalType.cs | ||
| MarshalUtils.cs | ||
| MethodInfo.cs | ||
| MustBeVariantAnalyzer.cs | ||
| PropertyInfo.cs | ||
| ScriptMethodsGenerator.cs | ||
| ScriptPathAttributeGenerator.cs | ||
| ScriptPropertiesGenerator.cs | ||
| ScriptPropertyDefValGenerator.cs | ||
| ScriptRegistrarGenerator.cs | ||
| ScriptSerializationGenerator.cs | ||
| ScriptSignalsGenerator.cs | ||