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