53 lines
1.3 KiB
GDScript
53 lines
1.3 KiB
GDScript
![]() |
extends Node2D
|
||
|
|
||
|
@onready var container = $ScrollContainer/VBoxContainer
|
||
|
@onready var spriteListObject = preload("res://ui_scenes/spriteList/sprite_list_object.tscn")
|
||
|
|
||
|
func _ready():
|
||
|
Global.spriteList = self
|
||
|
|
||
|
func updateData():
|
||
|
clearContainer()
|
||
|
await get_tree().create_timer(0.15).timeout
|
||
|
var spritesAll = get_tree().get_nodes_in_group("saved")
|
||
|
|
||
|
var spritesWithParents = []
|
||
|
var allSprites = []
|
||
|
|
||
|
for sprite in spritesAll:
|
||
|
var listObj = spriteListObject.instantiate()
|
||
|
listObj.spritePath = sprite.path
|
||
|
listObj.sprite = sprite
|
||
|
listObj.parent = sprite.parentSprite
|
||
|
if sprite.parentSprite != null:
|
||
|
spritesWithParents.append(listObj)
|
||
|
allSprites.append(listObj)
|
||
|
|
||
|
container.add_child(listObj)
|
||
|
|
||
|
for child in spritesWithParents:
|
||
|
var parentListObj = null
|
||
|
var index = 0
|
||
|
for sprite in allSprites:
|
||
|
if child.parent == sprite.sprite:
|
||
|
parentListObj = sprite
|
||
|
index = sprite.get_index() + 1
|
||
|
sprite.childrenTags.append(child)
|
||
|
break
|
||
|
child.parentTag = parentListObj
|
||
|
container.move_child(child,index)
|
||
|
|
||
|
for sprite in allSprites:
|
||
|
sprite.updateChildren()
|
||
|
|
||
|
for child in spritesWithParents:
|
||
|
child.updateIndent()
|
||
|
|
||
|
func clearContainer():
|
||
|
for i in container.get_children():
|
||
|
i.queue_free()
|
||
|
|
||
|
func updateAllVisible():
|
||
|
for i in container.get_children():
|
||
|
i.updateVis()
|