2020-05-01 19:17:05 +00:00
|
|
|
class_name LayerButton
|
2020-02-10 22:06:24 +00:00
|
|
|
extends Button
|
2019-08-18 09:28:38 +00:00
|
|
|
|
2020-01-18 19:06:47 +00:00
|
|
|
var i := 0
|
2020-03-08 19:57:22 +00:00
|
|
|
var visibility_button : BaseButton
|
2020-03-09 01:26:13 +00:00
|
|
|
var lock_button : BaseButton
|
2020-03-14 19:40:10 +00:00
|
|
|
var linked_button : BaseButton
|
2020-03-08 19:57:22 +00:00
|
|
|
var label : Label
|
|
|
|
var line_edit : LineEdit
|
2019-12-05 23:48:29 +00:00
|
|
|
|
2020-05-01 17:47:10 +00:00
|
|
|
|
2019-08-18 09:28:38 +00:00
|
|
|
func _ready() -> void:
|
2020-03-08 19:57:22 +00:00
|
|
|
visibility_button = Global.find_node_by_name(self, "VisibilityButton")
|
2020-03-09 01:26:13 +00:00
|
|
|
lock_button = Global.find_node_by_name(self, "LockButton")
|
2020-03-14 19:40:10 +00:00
|
|
|
linked_button = Global.find_node_by_name(self, "LinkButton")
|
2020-03-08 19:57:22 +00:00
|
|
|
label = Global.find_node_by_name(self, "Label")
|
|
|
|
line_edit = Global.find_node_by_name(self, "LineEdit")
|
|
|
|
|
2020-06-01 13:42:53 +00:00
|
|
|
if Global.layers[i].visible:
|
2020-05-06 12:19:53 +00:00
|
|
|
Global.change_button_texturerect(visibility_button.get_child(0), "layer_visible.png")
|
2020-05-03 00:13:08 +00:00
|
|
|
visibility_button.get_child(0).rect_size = Vector2(24, 14)
|
|
|
|
visibility_button.get_child(0).rect_position = Vector2(4, 9)
|
2019-12-27 18:24:44 +00:00
|
|
|
else:
|
2020-05-06 12:19:53 +00:00
|
|
|
Global.change_button_texturerect(visibility_button.get_child(0), "layer_invisible.png")
|
2020-05-03 00:13:08 +00:00
|
|
|
visibility_button.get_child(0).rect_size = Vector2(24, 8)
|
|
|
|
visibility_button.get_child(0).rect_position = Vector2(4, 12)
|
2019-08-18 09:28:38 +00:00
|
|
|
|
2020-06-01 13:42:53 +00:00
|
|
|
if Global.layers[i].locked:
|
2020-05-06 12:19:53 +00:00
|
|
|
Global.change_button_texturerect(lock_button.get_child(0), "lock.png")
|
2020-03-09 01:26:13 +00:00
|
|
|
else:
|
2020-05-06 12:19:53 +00:00
|
|
|
Global.change_button_texturerect(lock_button.get_child(0), "unlock.png")
|
2020-03-09 01:26:13 +00:00
|
|
|
|
2020-06-01 13:42:53 +00:00
|
|
|
if Global.layers[i].new_cels_linked: # If new layers will be linked
|
2020-05-06 12:19:53 +00:00
|
|
|
Global.change_button_texturerect(linked_button.get_child(0), "linked_layer.png")
|
2020-03-14 19:40:10 +00:00
|
|
|
else:
|
2020-05-06 12:19:53 +00:00
|
|
|
Global.change_button_texturerect(linked_button.get_child(0), "unlinked_layer.png")
|
2020-03-14 19:40:10 +00:00
|
|
|
|
2020-05-01 17:47:10 +00:00
|
|
|
|
2019-12-27 18:24:44 +00:00
|
|
|
func _input(event : InputEvent) -> void:
|
2020-03-09 15:17:20 +00:00
|
|
|
if (event.is_action_released("ui_accept") or event.is_action_released("ui_cancel")) and line_edit.visible and event.scancode != KEY_SPACE:
|
|
|
|
save_layer_name(line_edit.text)
|
2019-12-05 23:48:29 +00:00
|
|
|
|
2020-05-01 17:47:10 +00:00
|
|
|
|
2019-11-06 16:39:23 +00:00
|
|
|
func _on_LayerContainer_pressed() -> void:
|
2020-03-04 23:13:59 +00:00
|
|
|
pressed = !pressed
|
2020-03-09 15:17:20 +00:00
|
|
|
label.visible = false
|
|
|
|
line_edit.visible = true
|
|
|
|
line_edit.editable = true
|
|
|
|
line_edit.grab_focus()
|
|
|
|
|
2020-05-01 17:47:10 +00:00
|
|
|
|
2020-03-09 15:17:20 +00:00
|
|
|
func _on_LineEdit_focus_exited() -> void:
|
|
|
|
save_layer_name(line_edit.text)
|
|
|
|
|
2020-05-01 17:47:10 +00:00
|
|
|
|
2020-03-09 15:17:20 +00:00
|
|
|
func save_layer_name(new_name : String) -> void:
|
|
|
|
label.visible = true
|
|
|
|
line_edit.visible = false
|
|
|
|
line_edit.editable = false
|
|
|
|
label.text = new_name
|
2020-04-06 15:35:54 +00:00
|
|
|
Global.layers_changed_skip = true
|
2020-06-01 13:42:53 +00:00
|
|
|
Global.layers[i].name = new_name
|
2019-08-18 09:28:38 +00:00
|
|
|
|
2020-05-01 17:47:10 +00:00
|
|
|
|
2019-08-18 09:28:38 +00:00
|
|
|
func _on_VisibilityButton_pressed() -> void:
|
2020-06-01 13:42:53 +00:00
|
|
|
Global.layers[i].visible = !Global.layers[i].visible
|
2019-12-27 18:24:44 +00:00
|
|
|
Global.canvas.update()
|
2020-03-09 01:26:13 +00:00
|
|
|
|
2020-05-01 17:47:10 +00:00
|
|
|
|
2020-03-09 01:26:13 +00:00
|
|
|
func _on_LockButton_pressed() -> void:
|
2020-06-01 13:42:53 +00:00
|
|
|
Global.layers[i].locked = !Global.layers[i].locked
|
2020-03-14 19:40:10 +00:00
|
|
|
|
2020-05-01 17:47:10 +00:00
|
|
|
|
2020-03-14 19:40:10 +00:00
|
|
|
func _on_LinkButton_pressed() -> void:
|
2020-06-01 13:42:53 +00:00
|
|
|
Global.layers[i].new_cels_linked = !Global.layers[i].new_cels_linked
|
|
|
|
if Global.layers[i].new_cels_linked && !Global.layers[i].linked_cels:
|
2020-06-02 23:14:24 +00:00
|
|
|
# If button is pressed and there are no linked cels in the layer
|
|
|
|
Global.layers[i].linked_cels.append(Global.frames[Global.current_frame])
|
2020-06-01 13:42:53 +00:00
|
|
|
Global.layers[i].frame_container.get_child(Global.current_frame)._ready()
|