summaryrefslogtreecommitdiffstats
path: root/modules/gdscript/gdscript_utility_callable.cpp
diff options
context:
space:
mode:
authorA Thousand Ships <96648715+AThousandShips@users.noreply.github.com>2024-01-28 15:16:09 +0100
committerA Thousand Ships <96648715+AThousandShips@users.noreply.github.com>2024-03-10 11:02:43 +0100
commit59bcc2888c0c6002428ed1040ef6b36957a80e98 (patch)
treee78cf547c47bb31e35827eff93f6e7c492399605 /modules/gdscript/gdscript_utility_callable.cpp
parent0ace0a129284ffc6646b199699c1607a316fcec0 (diff)
downloadredot-engine-59bcc2888c0c6002428ed1040ef6b36957a80e98.tar.gz
Add methods to get argument count of methods
Added to: * `Callable`s * `Object`s * `ClassDB` * `Script(Instance)`s
Diffstat (limited to 'modules/gdscript/gdscript_utility_callable.cpp')
-rw-r--r--modules/gdscript/gdscript_utility_callable.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/modules/gdscript/gdscript_utility_callable.cpp b/modules/gdscript/gdscript_utility_callable.cpp
index 7708a18044..edd7e05b22 100644
--- a/modules/gdscript/gdscript_utility_callable.cpp
+++ b/modules/gdscript/gdscript_utility_callable.cpp
@@ -80,6 +80,21 @@ ObjectID GDScriptUtilityCallable::get_object() const {
return ObjectID();
}
+int GDScriptUtilityCallable::get_argument_count(bool &r_is_valid) const {
+ switch (type) {
+ case TYPE_INVALID:
+ r_is_valid = false;
+ return 0;
+ case TYPE_GLOBAL:
+ r_is_valid = true;
+ return Variant::get_utility_function_argument_count(function_name);
+ case TYPE_GDSCRIPT:
+ r_is_valid = true;
+ return GDScriptUtilityFunctions::get_function_argument_count(function_name);
+ }
+ ERR_FAIL_V_MSG(0, "Invalid type.");
+}
+
void GDScriptUtilityCallable::call(const Variant **p_arguments, int p_argcount, Variant &r_return_value, Callable::CallError &r_call_error) const {
switch (type) {
case TYPE_INVALID: