You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-09 12:50:35 +00:00
Reworked signal connection system, added support for Callable and Signal objects and made them default.
This commit is contained in:
committed by
Juan Linietsky
parent
1a4be2cd8f
commit
69c95f4b4c
@@ -79,7 +79,7 @@ bool PluginScriptInstance::has_method(const StringName &p_method) const {
|
||||
return _script->has_method(p_method);
|
||||
}
|
||||
|
||||
Variant PluginScriptInstance::call(const StringName &p_method, const Variant **p_args, int p_argcount, Variant::CallError &r_error) {
|
||||
Variant PluginScriptInstance::call(const StringName &p_method, const Variant **p_args, int p_argcount, Callable::CallError &r_error) {
|
||||
// TODO: optimize when calling a Godot method from Godot to avoid param conversion ?
|
||||
godot_variant ret = _desc->call_method(
|
||||
_data, (godot_string_name *)&p_method, (const godot_variant **)p_args,
|
||||
|
||||
@@ -60,7 +60,7 @@ public:
|
||||
virtual void get_method_list(List<MethodInfo> *p_list) const;
|
||||
virtual bool has_method(const StringName &p_method) const;
|
||||
|
||||
virtual Variant call(const StringName &p_method, const Variant **p_args, int p_argcount, Variant::CallError &r_error);
|
||||
virtual Variant call(const StringName &p_method, const Variant **p_args, int p_argcount, Callable::CallError &r_error);
|
||||
|
||||
// Rely on default implementations provided by ScriptInstance for the moment.
|
||||
// Note that multilevel call could be removed in 3.0 release, so stay tuned
|
||||
|
||||
@@ -55,9 +55,9 @@ void PluginScript::_bind_methods() {
|
||||
ClassDB::bind_vararg_method(METHOD_FLAGS_DEFAULT, "new", &PluginScript::_new, MethodInfo("new"));
|
||||
}
|
||||
|
||||
PluginScriptInstance *PluginScript::_create_instance(const Variant **p_args, int p_argcount, Object *p_owner, Variant::CallError &r_error) {
|
||||
PluginScriptInstance *PluginScript::_create_instance(const Variant **p_args, int p_argcount, Object *p_owner, Callable::CallError &r_error) {
|
||||
|
||||
r_error.error = Variant::CallError::CALL_OK;
|
||||
r_error.error = Callable::CallError::CALL_OK;
|
||||
|
||||
// Create instance
|
||||
PluginScriptInstance *instance = memnew(PluginScriptInstance());
|
||||
@@ -67,7 +67,7 @@ PluginScriptInstance *PluginScript::_create_instance(const Variant **p_args, int
|
||||
_instances.insert(instance->get_owner());
|
||||
_language->unlock();
|
||||
} else {
|
||||
r_error.error = Variant::CallError::CALL_ERROR_INSTANCE_IS_NULL;
|
||||
r_error.error = Callable::CallError::CALL_ERROR_INSTANCE_IS_NULL;
|
||||
memdelete(instance);
|
||||
ERR_FAIL_V(NULL);
|
||||
}
|
||||
@@ -83,12 +83,12 @@ PluginScriptInstance *PluginScript::_create_instance(const Variant **p_args, int
|
||||
return instance;
|
||||
}
|
||||
|
||||
Variant PluginScript::_new(const Variant **p_args, int p_argcount, Variant::CallError &r_error) {
|
||||
Variant PluginScript::_new(const Variant **p_args, int p_argcount, Callable::CallError &r_error) {
|
||||
|
||||
r_error.error = Variant::CallError::CALL_OK;
|
||||
r_error.error = Callable::CallError::CALL_OK;
|
||||
|
||||
if (!_valid) {
|
||||
r_error.error = Variant::CallError::CALL_ERROR_INVALID_METHOD;
|
||||
r_error.error = Callable::CallError::CALL_ERROR_INVALID_METHOD;
|
||||
return Variant();
|
||||
}
|
||||
|
||||
@@ -102,7 +102,7 @@ Variant PluginScript::_new(const Variant **p_args, int p_argcount, Variant::Call
|
||||
}
|
||||
|
||||
if (!owner) {
|
||||
r_error.error = Variant::CallError::CALL_ERROR_INSTANCE_IS_NULL;
|
||||
r_error.error = Callable::CallError::CALL_ERROR_INSTANCE_IS_NULL;
|
||||
return Variant();
|
||||
}
|
||||
|
||||
@@ -201,7 +201,7 @@ ScriptInstance *PluginScript::instance_create(Object *p_this) {
|
||||
}
|
||||
}
|
||||
|
||||
Variant::CallError unchecked_error;
|
||||
Callable::CallError unchecked_error;
|
||||
return _create_instance(NULL, 0, p_this, unchecked_error);
|
||||
}
|
||||
|
||||
|
||||
@@ -72,8 +72,8 @@ private:
|
||||
protected:
|
||||
static void _bind_methods();
|
||||
|
||||
PluginScriptInstance *_create_instance(const Variant **p_args, int p_argcount, Object *p_owner, Variant::CallError &r_error);
|
||||
Variant _new(const Variant **p_args, int p_argcount, Variant::CallError &r_error);
|
||||
PluginScriptInstance *_create_instance(const Variant **p_args, int p_argcount, Object *p_owner, Callable::CallError &r_error);
|
||||
Variant _new(const Variant **p_args, int p_argcount, Callable::CallError &r_error);
|
||||
|
||||
#ifdef TOOLS_ENABLED
|
||||
Set<PlaceHolderScriptInstance *> placeholders;
|
||||
|
||||
Reference in New Issue
Block a user