GwWuYou 2bc5a08d74 refactor(signal): 将SignalBuilder的参数类型从Node改为GodotObject
- 修改SignalBuilder构造函数参数类型从Node为GodotObject
- 修改SignalBuilder.End()方法返回类型从Node为GodotObject
- 修改SignalFluentExtensions.Signal扩展方法参数名和类型从Node为GodotObject
- 更新XML文档注释中的参数描述
2026-01-02 21:14:36 +08:00

46 lines
1.3 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using Godot;
namespace GFramework.Godot.extensions.signal;
/// <summary>
/// 信号连接构建器用于以流畅的方式连接Godot信号
/// </summary>
/// <param name="target">要连接信号的目标节点</param>
/// <param name="signal">要连接的信号名称</param>
public sealed class SignalBuilder(GodotObject target, StringName signal)
{
private GodotObject.ConnectFlags? _flags;
/// <summary>
/// 设置连接标志
/// </summary>
/// <param name="flags">连接标志</param>
/// <returns>当前构建器实例</returns>
public SignalBuilder WithFlags(GodotObject.ConnectFlags flags)
{
_flags = flags;
return this;
}
/// <summary>
/// 连接信号到指定的可调用对象
/// </summary>
/// <param name="callable">要连接的可调用对象</param>
/// <returns>当前构建器实例</returns>
public SignalBuilder To(Callable callable)
{
// 根据是否设置了标志来决定连接方式
if (_flags is null)
target.Connect(signal, callable);
else
target.Connect(signal, callable, (uint)_flags);
return this;
}
/// <summary>
/// 显式结束,返回 Node
/// </summary>
/// <returns>目标节点</returns>
public GodotObject End() => target;
}