Fix #8819. Adds _import_node() that, when used in conjunction with _import_scene, recurses through the scene tree and exports all available nodes.
This commit is contained in:
parent
a75623f436
commit
c97c733779
2 changed files with 15 additions and 12 deletions
|
@ -37,24 +37,18 @@ void TileSetEditor::edit(const Ref<TileSet> &p_tileset) {
|
||||||
tileset = p_tileset;
|
tileset = p_tileset;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TileSetEditor::_import_scene(Node *scene, Ref<TileSet> p_library, bool p_merge) {
|
void TileSetEditor::_import_node(Node *p_node, Ref<TileSet> p_library) {
|
||||||
|
|
||||||
if (!p_merge)
|
for (int i = 0; i < p_node->get_child_count(); i++) {
|
||||||
p_library->clear();
|
|
||||||
|
|
||||||
for (int i = 0; i < scene->get_child_count(); i++) {
|
Node *child = p_node->get_child(i);
|
||||||
|
|
||||||
Node *child = scene->get_child(i);
|
|
||||||
|
|
||||||
if (!child->cast_to<Sprite>()) {
|
if (!child->cast_to<Sprite>()) {
|
||||||
if (child->get_child_count() > 0) {
|
if (child->get_child_count() > 0) {
|
||||||
child = child->get_child(0);
|
_import_node(child, p_library);
|
||||||
if (!child->cast_to<Sprite>()) {
|
}
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
} else
|
continue;
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Sprite *mi = child->cast_to<Sprite>();
|
Sprite *mi = child->cast_to<Sprite>();
|
||||||
|
@ -138,6 +132,14 @@ void TileSetEditor::_import_scene(Node *scene, Ref<TileSet> p_library, bool p_me
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TileSetEditor::_import_scene(Node *scene, Ref<TileSet> p_library, bool p_merge) {
|
||||||
|
|
||||||
|
if (!p_merge)
|
||||||
|
p_library->clear();
|
||||||
|
|
||||||
|
_import_node(scene, p_library);
|
||||||
|
}
|
||||||
|
|
||||||
void TileSetEditor::_menu_confirm() {
|
void TileSetEditor::_menu_confirm() {
|
||||||
|
|
||||||
switch (option) {
|
switch (option) {
|
||||||
|
|
|
@ -59,6 +59,7 @@ class TileSetEditor : public Control {
|
||||||
void _menu_confirm();
|
void _menu_confirm();
|
||||||
void _name_dialog_confirm(const String &name);
|
void _name_dialog_confirm(const String &name);
|
||||||
|
|
||||||
|
static void _import_node(Node *p_node, Ref<TileSet> p_library);
|
||||||
static void _import_scene(Node *p_scene, Ref<TileSet> p_library, bool p_merge);
|
static void _import_scene(Node *p_scene, Ref<TileSet> p_library, bool p_merge);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
Loading…
Reference in a new issue