Add unbinds to scn

This commit is contained in:
kobewi 2023-01-31 17:10:41 +01:00
parent 0810ecaafd
commit 7780b40a3a
2 changed files with 6 additions and 2 deletions

View file

@ -104,7 +104,7 @@
</method> </method>
</methods> </methods>
<members> <members>
<member name="_bundled" type="Dictionary" setter="_set_bundled_scene" getter="_get_bundled_scene" default="{ &quot;conn_count&quot;: 0, &quot;conns&quot;: PackedInt32Array(), &quot;editable_instances&quot;: [], &quot;names&quot;: PackedStringArray(), &quot;node_count&quot;: 0, &quot;node_paths&quot;: [], &quot;nodes&quot;: PackedInt32Array(), &quot;variants&quot;: [], &quot;version&quot;: 2 }"> <member name="_bundled" type="Dictionary" setter="_set_bundled_scene" getter="_get_bundled_scene" default="{ &quot;conn_count&quot;: 0, &quot;conns&quot;: PackedInt32Array(), &quot;editable_instances&quot;: [], &quot;names&quot;: PackedStringArray(), &quot;node_count&quot;: 0, &quot;node_paths&quot;: [], &quot;nodes&quot;: PackedInt32Array(), &quot;variants&quot;: [], &quot;version&quot;: 3 }">
A dictionary representation of the scene contents. A dictionary representation of the scene contents.
Available keys include "rnames" and "variants" for resources, "node_count", "nodes", "node_paths" for nodes, "editable_instances" for base scene children overrides, "conn_count" and "conns" for signal connections, and "version" for the format style of the PackedScene. Available keys include "rnames" and "variants" for resources, "node_count", "nodes", "node_paths" for nodes, "editable_instances" for base scene children overrides, "conn_count" and "conns" for signal connections, and "version" for the format style of the PackedScene.
</member> </member>

View file

@ -43,7 +43,7 @@
#include "scene/main/missing_node.h" #include "scene/main/missing_node.h"
#include "scene/property_utils.h" #include "scene/property_utils.h"
#define PACKED_SCENE_VERSION 2 #define PACKED_SCENE_VERSION 3
#define META_POINTER_PROPERTY_BASE "metadata/_editor_prop_ptr_" #define META_POINTER_PROPERTY_BASE "metadata/_editor_prop_ptr_"
bool SceneState::can_instantiate() const { bool SceneState::can_instantiate() const {
return nodes.size() > 0; return nodes.size() > 0;
@ -1294,6 +1294,9 @@ void SceneState::set_bundled_scene(const Dictionary &p_dictionary) {
for (int j = 0; j < cd.binds.size(); j++) { for (int j = 0; j < cd.binds.size(); j++) {
cd.binds.write[j] = r[idx++]; cd.binds.write[j] = r[idx++];
} }
if (version >= 3) {
cd.unbinds = r[idx++];
}
} }
} }
@ -1380,6 +1383,7 @@ Dictionary SceneState::get_bundled_scene() const {
for (int j = 0; j < cd.binds.size(); j++) { for (int j = 0; j < cd.binds.size(); j++) {
rconns.push_back(cd.binds[j]); rconns.push_back(cd.binds[j]);
} }
rconns.push_back(cd.unbinds);
} }
d["conns"] = rconns; d["conns"] = rconns;