diff --git a/scripts/libs/util.gd b/scripts/libs/util.gd index 247415e..3978384 100644 --- a/scripts/libs/util.gd +++ b/scripts/libs/util.gd @@ -332,6 +332,10 @@ static func disconnect_all(sender : Object, receiver : Object, signal_name := "" continue sender.disconnect(signal_name, receiver, connection["method"]) +static func try_connect(sender : Object, signal_name : String, receiver : Object, method : String, binds := []): + if sender.has_signal(signal_name): + sender.connect(signal_name, receiver, method, binds) + static func copy_signal_handlers(target : Object, source : Object, sig_name : String) -> void: for connection in source.get_signal_connection_list(sig_name): target.connect(sig_name, connection["target"], connection["method"], connection["binds"])