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

Implement CSharpScript::get_script_method_list and related functionality.

This commit is contained in:
Ben Rog-Wilhelm
2018-11-01 08:35:16 -07:00
committed by Ben Rog-Wilhelm
parent 41d1dba35f
commit f13f2d512f
7 changed files with 103 additions and 2 deletions

View File

@@ -2474,6 +2474,17 @@ void CSharpScript::set_source_code(const String &p_code) {
#endif
}
void CSharpScript::get_script_method_list(List<MethodInfo> *p_list) const {
if (!script_class)
return;
const Vector<GDMonoMethod *> &methods = script_class->get_all_methods();
for (int i = 0; i < methods.size(); ++i) {
p_list->push_back(methods[i]->get_method_info());
}
}
bool CSharpScript::has_method(const StringName &p_method) const {
if (!script_class)
@@ -2482,6 +2493,25 @@ bool CSharpScript::has_method(const StringName &p_method) const {
return script_class->has_fetched_method_unknown_params(p_method);
}
MethodInfo CSharpScript::get_method_info(const StringName &p_method) const {
if (!script_class)
return MethodInfo();
GDMonoClass *top = script_class;
while (top && top != native) {
GDMonoMethod *params = top->get_fetched_method_unknown_params(p_method);
if (params) {
return params->get_method_info();
}
top = top->get_parent_class();
}
return MethodInfo();
}
Error CSharpScript::reload(bool p_keep_state) {
bool has_instances;