1
0
Fork 0
mirror of https://github.com/Orama-Interactive/Pixelorama.git synced 2025-03-13 06:45:17 +00:00
Pixelorama/src/UI/TilesPanel.gd
Emmanouil Papadeas 4f1ee0e828 Add a tileset panel
Code is a bit meh, needs to be written better.
2024-12-04 01:21:53 +02:00

36 lines
1.2 KiB
GDScript

extends ScrollContainer
@onready var h_flow_container: HFlowContainer = $PanelContainer/HFlowContainer
func _ready() -> void:
Global.project_switched.connect(_on_project_switched)
Global.project_switched.connect(_update_tilesets)
Global.current_project.tilesets_updated.connect(_update_tilesets)
func _on_project_switched() -> void:
if not Global.current_project.tilesets_updated.is_connected(_update_tilesets):
Global.current_project.tilesets_updated.connect(_update_tilesets)
# TODO: Handle signal methods better and rename them to avoid confusion.
func _update_tilesets() -> void:
for child in h_flow_container.get_children():
child.queue_free()
if Global.current_project.tilesets.size() == 0:
return
var tileset := Global.current_project.tilesets[0]
if not tileset.updated.is_connected(_update_tileset):
tileset.updated.connect(_update_tileset)
func _update_tileset() -> void:
for child in h_flow_container.get_children():
child.queue_free()
var tileset := Global.current_project.tilesets[0]
for tile in tileset.tiles:
var texture_rect := TextureButton.new()
texture_rect.custom_minimum_size = Vector2i(32, 32)
texture_rect.texture_normal = ImageTexture.create_from_image(tile)
h_flow_container.add_child(texture_rect)