mirror of
https://github.com/Orama-Interactive/Pixelorama.git
synced 2025-02-15 02:03:06 +00:00
58 lines
2 KiB
GDScript
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
|