diff --git a/modules/mono/editor/Godot.NET.Sdk/Godot.SourceGenerators.Tests/TestData/GeneratedSources/EventSignals_ScriptSignals.generated.cs b/modules/mono/editor/Godot.NET.Sdk/Godot.SourceGenerators.Tests/TestData/GeneratedSources/EventSignals_ScriptSignals.generated.cs index 5af859c06b..9ddb4ab8b7 100644 --- a/modules/mono/editor/Godot.NET.Sdk/Godot.SourceGenerators.Tests/TestData/GeneratedSources/EventSignals_ScriptSignals.generated.cs +++ b/modules/mono/editor/Godot.NET.Sdk/Godot.SourceGenerators.Tests/TestData/GeneratedSources/EventSignals_ScriptSignals.generated.cs @@ -34,7 +34,7 @@ partial class EventSignals } protected void EmitSignalMySignal(string @str, int @num) { - EmitSignal(SignalName.MySignal, @str, @num); + EmitSignal(SignalName.MySignal, [@str, @num]); } /// [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] diff --git a/modules/mono/editor/Godot.NET.Sdk/Godot.SourceGenerators/ScriptSignalsGenerator.cs b/modules/mono/editor/Godot.NET.Sdk/Godot.SourceGenerators/ScriptSignalsGenerator.cs index a860ce8f89..e711614f0e 100644 --- a/modules/mono/editor/Godot.NET.Sdk/Godot.SourceGenerators/ScriptSignalsGenerator.cs +++ b/modules/mono/editor/Godot.NET.Sdk/Godot.SourceGenerators/ScriptSignalsGenerator.cs @@ -303,20 +303,25 @@ namespace Godot.SourceGenerators } source.Append(")\n"); source.Append(" {\n"); - source.Append($" EmitSignal(SignalName.{signalName}"); + source.Append($" EmitSignal(SignalName.{signalName}, ["); foreach (var paramSymbol in invokeMethodSymbol.Parameters) { + if (paramSymbol.Ordinal != 0) + { + source.Append(", "); + } + // Enums must be converted to the underlying type before they can be implicitly converted to Variant if (paramSymbol.Type.TypeKind == TypeKind.Enum) { var underlyingType = ((INamedTypeSymbol)paramSymbol.Type).EnumUnderlyingType!; - source.Append($", ({underlyingType.FullQualifiedNameIncludeGlobal()})@{paramSymbol.Name}"); + source.Append($"({underlyingType.FullQualifiedNameIncludeGlobal()})@{paramSymbol.Name}"); continue; } - source.Append($", @{paramSymbol.Name}"); + source.Append($"@{paramSymbol.Name}"); } - source.Append(");\n"); + source.Append("]);\n"); source.Append(" }\n"); }