1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-04 12:00:25 +00:00

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
50 changed files with 821 additions and 3 deletions

View File

@@ -101,6 +101,19 @@ public:
EXBIND1RC(bool, has_method, const StringName &)
EXBIND1RC(bool, has_static_method, const StringName &)
GDVIRTUAL1RC(Variant, _get_script_method_argument_count, const StringName &)
virtual int get_script_method_argument_count(const StringName &p_method, bool *r_is_valid = nullptr) const override {
Variant ret;
if (GDVIRTUAL_CALL(_get_script_method_argument_count, p_method, ret) && ret.get_type() == Variant::INT) {
if (r_is_valid) {
*r_is_valid = true;
}
return ret.operator int();
}
// Fallback to default.
return Script::get_script_method_argument_count(p_method, r_is_valid);
}
GDVIRTUAL1RC(Dictionary, _get_method_info, const StringName &)
virtual MethodInfo get_method_info(const StringName &p_method) const override {
Dictionary mi;
@@ -807,6 +820,11 @@ public:
return false;
}
virtual int get_method_argument_count(const StringName &p_method, bool *r_is_valid = nullptr) const override {
// Fallback to default.
return ScriptInstance::get_method_argument_count(p_method, r_is_valid);
}
virtual Variant callp(const StringName &p_method, const Variant **p_args, int p_argcount, Callable::CallError &r_error) override {
Variant ret;
if (native_info->call_func) {