function to add script and instance at once, as needed by neikeq

This commit is contained in:
Juan Linietsky 2017-07-22 16:57:56 -03:00
parent 0ad1a8f3d0
commit 3b2dfae5af
2 changed files with 13 additions and 0 deletions

View File

@ -993,6 +993,17 @@ void Object::cancel_delete() {
_predelete_ok = true;
}
void Object::set_script_and_instance(const RefPtr &p_script, ScriptInstance *p_instance) {
//this function is not meant to be used in any of these ways
ERR_FAIL_COND(p_script.is_null());
ERR_FAIL_COND(!p_instance);
ERR_FAIL_COND(script_instance != NULL || !script.is_null());
script = p_script;
script_instance = p_instance;
}
void Object::set_script(const RefPtr &p_script) {
if (script == p_script)

View File

@ -651,6 +651,8 @@ public:
void set_script_instance(ScriptInstance *p_instance);
_FORCE_INLINE_ ScriptInstance *get_script_instance() const { return script_instance; }
void set_script_and_instance(const RefPtr &p_script, ScriptInstance *p_instance); //some script languages can't control instance creation, so this function eases the process
void add_user_signal(const MethodInfo &p_signal);
void emit_signal(const StringName &p_name, VARIANT_ARG_LIST);
void emit_signal(const StringName &p_name, const Variant **p_args, int p_argcount);