|
@@ -160,8 +160,10 @@ bool NativeScript::can_instance() const {
|
|
NativeScriptDesc *script_data = get_script_desc();
|
|
NativeScriptDesc *script_data = get_script_desc();
|
|
|
|
|
|
#ifdef TOOLS_ENABLED
|
|
#ifdef TOOLS_ENABLED
|
|
-
|
|
|
|
- return script_data || (!is_tool() && !ScriptServer::is_scripting_enabled());
|
|
|
|
|
|
+ // Only valid if this is either a tool script or a "regular" script.
|
|
|
|
+ // (so an environment whre scripting is disabled (and not the editor) would not
|
|
|
|
+ // create objects).
|
|
|
|
+ return script_data && (is_tool() || ScriptServer::is_scripting_enabled());
|
|
#else
|
|
#else
|
|
return script_data;
|
|
return script_data;
|
|
#endif
|
|
#endif
|
|
@@ -199,25 +201,6 @@ ScriptInstance *NativeScript::instance_create(Object *p_this) {
|
|
return NULL;
|
|
return NULL;
|
|
}
|
|
}
|
|
|
|
|
|
-#ifdef TOOLS_ENABLED
|
|
|
|
- if (!ScriptServer::is_scripting_enabled() && !is_tool()) {
|
|
|
|
- // placeholder for nodes. For tools we want the rool thing.
|
|
|
|
-
|
|
|
|
- PlaceHolderScriptInstance *sins = memnew(PlaceHolderScriptInstance(NSL, Ref<Script>(this), p_this));
|
|
|
|
- placeholders.insert(sins);
|
|
|
|
-
|
|
|
|
- if (script_data->create_func.create_func) {
|
|
|
|
- script_data->create_func.create_func(
|
|
|
|
- (godot_object *)p_this,
|
|
|
|
- script_data->create_func.method_data);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- _update_placeholder(sins);
|
|
|
|
-
|
|
|
|
- return sins;
|
|
|
|
- }
|
|
|
|
-#endif
|
|
|
|
-
|
|
|
|
NativeScriptInstance *nsi = memnew(NativeScriptInstance);
|
|
NativeScriptInstance *nsi = memnew(NativeScriptInstance);
|
|
|
|
|
|
nsi->owner = p_this;
|
|
nsi->owner = p_this;
|
|
@@ -246,6 +229,19 @@ ScriptInstance *NativeScript::instance_create(Object *p_this) {
|
|
return nsi;
|
|
return nsi;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+PlaceHolderScriptInstance *NativeScript::placeholder_instance_create(Object *p_this) {
|
|
|
|
+#ifdef TOOLS_ENABLED
|
|
|
|
+ PlaceHolderScriptInstance *sins = memnew(PlaceHolderScriptInstance(NSL, Ref<Script>(this), p_this));
|
|
|
|
+ placeholders.insert(sins);
|
|
|
|
+
|
|
|
|
+ _update_placeholder(sins);
|
|
|
|
+
|
|
|
|
+ return sins;
|
|
|
|
+#else
|
|
|
|
+ return NULL;
|
|
|
|
+#endif
|
|
|
|
+}
|
|
|
|
+
|
|
bool NativeScript::instance_has(const Object *p_this) const {
|
|
bool NativeScript::instance_has(const Object *p_this) const {
|
|
return instance_owners.has((Object *)p_this);
|
|
return instance_owners.has((Object *)p_this);
|
|
}
|
|
}
|
|
@@ -1691,7 +1687,7 @@ void NativeReloadNode::_notification(int p_what) {
|
|
|
|
|
|
// since singleton libraries are not unloaded there is no point
|
|
// since singleton libraries are not unloaded there is no point
|
|
// in loading them again.
|
|
// in loading them again.
|
|
- if (!gdn->get_library()->is_singleton()) {
|
|
|
|
|
|
+ if (gdn->get_library()->is_singleton()) {
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
|
|
|