1
0
Fork 0
mirror of https://github.com/Orama-Interactive/Pixelorama.git synced 2025-02-15 02:03:06 +00:00
Pixelorama/src/UI/Timeline/CelProperties.gd
Emmanouil Papadeas 14a13a2161 Add user data for cels, frames and tags
Projects and layers are next, once I add project and layer setting dialogs respectively.
2024-04-04 01:27:50 +03:00

58 lines
2 KiB
GDScript

extends AcceptDialog
var cel_indices: Array
@onready var frame_num := $GridContainer/FrameNum as Label
@onready var layer_num := $GridContainer/LayerNum as Label
@onready var opacity_slider := $GridContainer/OpacitySlider as ValueSlider
@onready var z_index_slider := $GridContainer/ZIndexSlider as ValueSlider
@onready var user_data_text_edit := $GridContainer/UserDataTextEdit as TextEdit
func _on_visibility_changed() -> void:
if cel_indices.size() == 0:
return
Global.dialog_open(visible)
var first_cel := Global.current_project.frames[cel_indices[0][0]].cels[cel_indices[0][1]]
if visible:
if cel_indices.size() == 1:
var layer := Global.current_project.layers[cel_indices[0][1]]
frame_num.text = str(cel_indices[0][0] + 1)
layer_num.text = layer.name
else:
var first_layer := Global.current_project.layers[cel_indices[0][1]]
var last_layer := Global.current_project.layers[cel_indices[-1][1]]
frame_num.text = "[%s...%s]" % [cel_indices[0][0] + 1, cel_indices[-1][0] + 1]
layer_num.text = "[%s...%s]" % [first_layer.name, last_layer.name]
opacity_slider.value = first_cel.opacity * 100.0
z_index_slider.value = first_cel.z_index
user_data_text_edit.text = first_cel.user_data
else:
cel_indices = []
func _on_opacity_slider_value_changed(value: float) -> void:
if cel_indices.size() == 0:
return
for cel_index in cel_indices:
var cel := Global.current_project.frames[cel_index[0]].cels[cel_index[1]]
cel.opacity = value / 100.0
Global.canvas.queue_redraw()
func _on_z_index_slider_value_changed(value: float) -> void:
if cel_indices.size() == 0:
return
for cel_index in cel_indices:
var cel := Global.current_project.frames[cel_index[0]].cels[cel_index[1]]
cel.z_index = value
Global.current_project.order_layers()
Global.canvas.update_all_layers = true
Global.canvas.queue_redraw()
func _on_user_data_text_edit_text_changed() -> void:
for cel_index in cel_indices:
var cel := Global.current_project.frames[cel_index[0]].cels[cel_index[1]]
cel.user_data = user_data_text_edit.text