Browse Source

Add ability to easily register signals with no arguments

Aaron Franke 4 years ago
parent
commit
95ff72706d
1 changed files with 12 additions and 1 deletions
  1. 12 1
      include/core/Godot.hpp

+ 12 - 1
include/core/Godot.hpp

@@ -496,7 +496,7 @@ void register_property(const char *name, void (T::*setter)(P), P (T::*getter)()
 }
 
 template <class T>
-void register_signal(String name, Dictionary args = Dictionary()) {
+void register_signal(String name, Dictionary args) {
 	static_assert(T::___CLASS_IS_SCRIPT, "This function must only be used on custom classes");
 
 	godot_signal signal = {};
@@ -540,6 +540,17 @@ void register_signal(String name, Args... varargs) {
 	register_signal<T>(name, Dictionary::make(varargs...));
 }
 
+template <class T>
+void register_signal(String name) {
+	static_assert(T::___CLASS_IS_SCRIPT, "This function must only be used on custom classes");
+
+	godot_signal signal = {};
+	signal.name = *(godot_string *)&name;
+
+	godot::nativescript_api->godot_nativescript_register_signal(godot::_RegisterState::nativescript_handle,
+			T::___get_class_name(), &signal);
+}
+
 #ifndef GODOT_CPP_NO_OBJECT_CAST
 template <class T>
 T *Object::cast_to(const Object *obj) {