mirror of
https://github.com/godotengine/godot.git
synced 2025-10-26 19:24:18 +00:00
Reworked signal connection system, added support for Callable and Signal objects and made them default.
This commit is contained in:
parent
1a4be2cd8f
commit
69c95f4b4c
275 changed files with 3831 additions and 2948 deletions
|
|
@ -1720,7 +1720,7 @@ bool CSharpInstance::has_method(const StringName &p_method) const {
|
|||
return false;
|
||||
}
|
||||
|
||||
Variant CSharpInstance::call(const StringName &p_method, const Variant **p_args, int p_argcount, Variant::CallError &r_error) {
|
||||
Variant CSharpInstance::call(const StringName &p_method, const Variant **p_args, int p_argcount, Callable::CallError &r_error) {
|
||||
|
||||
ERR_FAIL_COND_V(!script.is_valid(), Variant());
|
||||
|
||||
|
|
@ -1729,7 +1729,7 @@ Variant CSharpInstance::call(const StringName &p_method, const Variant **p_args,
|
|||
MonoObject *mono_object = get_mono_object();
|
||||
|
||||
if (!mono_object) {
|
||||
r_error.error = Variant::CallError::CALL_ERROR_INSTANCE_IS_NULL;
|
||||
r_error.error = Callable::CallError::CALL_ERROR_INSTANCE_IS_NULL;
|
||||
ERR_FAIL_V(Variant());
|
||||
}
|
||||
|
||||
|
|
@ -1741,7 +1741,7 @@ Variant CSharpInstance::call(const StringName &p_method, const Variant **p_args,
|
|||
if (method) {
|
||||
MonoObject *return_value = method->invoke(mono_object, p_args);
|
||||
|
||||
r_error.error = Variant::CallError::CALL_OK;
|
||||
r_error.error = Callable::CallError::CALL_OK;
|
||||
|
||||
if (return_value) {
|
||||
return GDMonoMarshal::mono_object_to_variant(return_value);
|
||||
|
|
@ -1753,7 +1753,7 @@ Variant CSharpInstance::call(const StringName &p_method, const Variant **p_args,
|
|||
top = top->get_parent_class();
|
||||
}
|
||||
|
||||
r_error.error = Variant::CallError::CALL_ERROR_INVALID_METHOD;
|
||||
r_error.error = Callable::CallError::CALL_ERROR_INVALID_METHOD;
|
||||
|
||||
return Variant();
|
||||
}
|
||||
|
|
@ -2704,11 +2704,11 @@ void CSharpScript::_clear() {
|
|||
script_class = NULL;
|
||||
}
|
||||
|
||||
Variant CSharpScript::call(const StringName &p_method, const Variant **p_args, int p_argcount, Variant::CallError &r_error) {
|
||||
Variant CSharpScript::call(const StringName &p_method, const Variant **p_args, int p_argcount, Callable::CallError &r_error) {
|
||||
|
||||
if (unlikely(GDMono::get_singleton() == NULL)) {
|
||||
// Probably not the best error but eh.
|
||||
r_error.error = Variant::CallError::CALL_ERROR_INSTANCE_IS_NULL;
|
||||
r_error.error = Callable::CallError::CALL_ERROR_INSTANCE_IS_NULL;
|
||||
return Variant();
|
||||
}
|
||||
|
||||
|
|
@ -2904,7 +2904,7 @@ StringName CSharpScript::get_instance_base_type() const {
|
|||
return StringName();
|
||||
}
|
||||
|
||||
CSharpInstance *CSharpScript::_create_instance(const Variant **p_args, int p_argcount, Object *p_owner, bool p_isref, Variant::CallError &r_error) {
|
||||
CSharpInstance *CSharpScript::_create_instance(const Variant **p_args, int p_argcount, Object *p_owner, bool p_isref, Callable::CallError &r_error) {
|
||||
|
||||
GD_MONO_ASSERT_THREAD_ATTACHED;
|
||||
|
||||
|
|
@ -2968,7 +2968,7 @@ CSharpInstance *CSharpScript::_create_instance(const Variant **p_args, int p_arg
|
|||
CRASH_COND(die == true);
|
||||
|
||||
p_owner->set_script_instance(NULL);
|
||||
r_error.error = Variant::CallError::CALL_ERROR_INSTANCE_IS_NULL;
|
||||
r_error.error = Callable::CallError::CALL_ERROR_INSTANCE_IS_NULL;
|
||||
ERR_FAIL_V_MSG(NULL, "Failed to allocate memory for the object.");
|
||||
}
|
||||
|
||||
|
|
@ -2994,14 +2994,14 @@ CSharpInstance *CSharpScript::_create_instance(const Variant **p_args, int p_arg
|
|||
return instance;
|
||||
}
|
||||
|
||||
Variant CSharpScript::_new(const Variant **p_args, int p_argcount, Variant::CallError &r_error) {
|
||||
Variant CSharpScript::_new(const Variant **p_args, int p_argcount, Callable::CallError &r_error) {
|
||||
|
||||
if (!valid) {
|
||||
r_error.error = Variant::CallError::CALL_ERROR_INVALID_METHOD;
|
||||
r_error.error = Callable::CallError::CALL_ERROR_INVALID_METHOD;
|
||||
return Variant();
|
||||
}
|
||||
|
||||
r_error.error = Variant::CallError::CALL_OK;
|
||||
r_error.error = Callable::CallError::CALL_OK;
|
||||
|
||||
ERR_FAIL_NULL_V(native, Variant());
|
||||
|
||||
|
|
@ -3049,7 +3049,7 @@ ScriptInstance *CSharpScript::instance_create(Object *p_this) {
|
|||
|
||||
GD_MONO_SCOPE_THREAD_ATTACH;
|
||||
|
||||
Variant::CallError unchecked_error;
|
||||
Callable::CallError unchecked_error;
|
||||
return _create_instance(NULL, 0, p_this, Object::cast_to<Reference>(p_this) != NULL, unchecked_error);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue