Add methods to get argument count of methods

Added to:
* `Callable`s
* `Object`s
* `ClassDB`
* `Script(Instance)`s
This commit is contained in:
A Thousand Ships 2024-01-28 15:16:09 +01:00
parent 0ace0a1292
commit 59bcc2888c
No known key found for this signature in database
GPG key ID: 2033189A662F8BD7
50 changed files with 821 additions and 3 deletions

View file

@ -32,6 +32,28 @@
#include "core/object/script_language.h"
int ScriptInstance::get_method_argument_count(const StringName &p_method, bool *r_is_valid) const {
// Default implementation simply traverses hierarchy.
Ref<Script> script = get_script();
while (script.is_valid()) {
bool valid = false;
int ret = script->get_script_method_argument_count(p_method, &valid);
if (valid) {
if (r_is_valid) {
*r_is_valid = true;
}
return ret;
}
script = script->get_base_script();
}
if (r_is_valid) {
*r_is_valid = false;
}
return 0;
}
Variant ScriptInstance::call_const(const StringName &p_method, const Variant **p_args, int p_argcount, Callable::CallError &r_error) {
return callp(p_method, p_args, p_argcount, r_error);
}