mirror of
https://github.com/tonytins/CozyPixelStudio.git
synced 2025-06-25 05:14:42 -04:00
Rename layers, layers & frames are now toggle-able buttons
This commit is contained in:
parent
79ceced483
commit
c535ec801a
8 changed files with 85 additions and 47 deletions
|
@ -43,6 +43,7 @@ func _ready() -> void:
|
|||
frame_button = load("res://Prefabs/FrameButton.tscn").instance()
|
||||
frame_button.name = "Frame_%s" % frame
|
||||
frame_button.get_node("FrameButton").frame = frame
|
||||
frame_button.get_node("FrameButton").pressed = true
|
||||
frame_button.get_node("FrameID").text = str(frame + 1)
|
||||
Global.frame_container.add_child(frame_button)
|
||||
|
||||
|
@ -301,9 +302,9 @@ func update_texture(layer_index : int) -> void:
|
|||
whole_image_texture.create_from_image(whole_image, 0)
|
||||
frame_texture_rect.texture = whole_image_texture
|
||||
|
||||
func get_layer_container(layer_index : int) -> PanelContainer:
|
||||
func get_layer_container(layer_index : int) -> LayerContainer:
|
||||
for container in Global.vbox_layer_container.get_children():
|
||||
if container is PanelContainer && container.i == layer_index:
|
||||
if container is LayerContainer && container.i == layer_index:
|
||||
return container
|
||||
return null
|
||||
|
||||
|
@ -386,7 +387,7 @@ func _draw() -> void:
|
|||
|
||||
func generate_layer_panels() -> void:
|
||||
for child in Global.vbox_layer_container.get_children():
|
||||
if child is PanelContainer:
|
||||
if child is LayerContainer:
|
||||
child.queue_free()
|
||||
|
||||
current_layer_index = layers.size() - 1
|
||||
|
@ -399,9 +400,11 @@ func generate_layer_panels() -> void:
|
|||
|
||||
for i in range(layers.size() -1, -1, -1):
|
||||
var layer_container = load("res://Prefabs/LayerContainer.tscn").instance()
|
||||
layers[i][2] = "Layer %s" % i
|
||||
if !layers[i][2]:
|
||||
layers[i][2] = "Layer %s" % i
|
||||
layer_container.i = i
|
||||
layer_container.get_child(0).get_child(2).text = layers[i][2]
|
||||
layer_container.get_child(0).get_child(3).text = layers[i][2]
|
||||
layers[i][3] = true #set visible
|
||||
layer_container.get_child(0).get_child(1).texture = layers[i][1]
|
||||
Global.vbox_layer_container.add_child(layer_container)
|
||||
|
|
|
@ -194,6 +194,11 @@ func redo(canvases : Array, layer_index : int = -1) -> void:
|
|||
print("Redo: ", action_name)
|
||||
|
||||
func change_frame() -> void:
|
||||
#Make all frame buttons unpressed
|
||||
for child in frame_container.get_children():
|
||||
child.get_node("FrameButton").pressed = false
|
||||
#Make only the current frame button pressed
|
||||
frame_container.get_child(current_frame).get_node("FrameButton").pressed = true
|
||||
for c in canvases:
|
||||
c.visible = false
|
||||
canvas = canvases[current_frame]
|
||||
|
|
|
@ -1,31 +1,38 @@
|
|||
extends PanelContainer
|
||||
extends Button
|
||||
class_name LayerContainer
|
||||
|
||||
var i
|
||||
# warning-ignore:unused_class_variable
|
||||
var currently_selected := false
|
||||
var visibility_toggled := false
|
||||
|
||||
func _ready() -> void:
|
||||
var stylebox := StyleBoxFlat.new()
|
||||
stylebox.bg_color = Color("3d3b45")
|
||||
add_stylebox_override("panel", stylebox)
|
||||
changed_selection()
|
||||
|
||||
# warning-ignore:unused_argument
|
||||
func _process(delta) -> void:
|
||||
var mouse_pos := get_local_mouse_position() + rect_position
|
||||
if Rect2(rect_position, rect_position + rect_size).has_point(mouse_pos) && !visibility_toggled:
|
||||
if Input.is_action_just_pressed("left_mouse"):
|
||||
Global.canvas.current_layer_index = i
|
||||
changed_selection()
|
||||
func _on_LayerContainer_pressed() -> void:
|
||||
var initially_pressed := pressed
|
||||
var label_initially_visible : bool = $HBoxContainer/Label.visible
|
||||
Global.canvas.current_layer_index = i
|
||||
changed_selection()
|
||||
if !initially_pressed:
|
||||
if label_initially_visible:
|
||||
$HBoxContainer/Label.visible = false
|
||||
$HBoxContainer/LineEdit.visible = true
|
||||
$HBoxContainer/LineEdit.editable = true
|
||||
else:
|
||||
$HBoxContainer/Label.visible = true
|
||||
$HBoxContainer/LineEdit.visible = false
|
||||
$HBoxContainer/LineEdit.editable = false
|
||||
|
||||
func changed_selection() -> void:
|
||||
var parent = get_parent()
|
||||
for child in parent.get_children():
|
||||
if child is PanelContainer:
|
||||
if child is Button:
|
||||
child.get_node("HBoxContainer/Label").visible = true
|
||||
child.get_node("HBoxContainer/LineEdit").visible = false
|
||||
child.get_node("HBoxContainer/LineEdit").editable = false
|
||||
if Global.canvas.current_layer_index == child.i:
|
||||
child.currently_selected = true
|
||||
child.get_stylebox("panel").bg_color = Color("282532")
|
||||
child.pressed = true
|
||||
|
||||
if Global.canvas.current_layer_index < Global.canvas.layers.size() - 1:
|
||||
Global.move_up_layer_button.disabled = false
|
||||
|
@ -46,7 +53,7 @@ func changed_selection() -> void:
|
|||
Global.merge_down_layer_button.mouse_default_cursor_shape = Control.CURSOR_FORBIDDEN
|
||||
else:
|
||||
child.currently_selected = false
|
||||
child.get_stylebox("panel").bg_color = Color("3d3b45")
|
||||
child.pressed = false
|
||||
|
||||
func _on_VisibilityButton_pressed() -> void:
|
||||
if Global.canvas.layers[i][3]:
|
||||
|
@ -56,9 +63,6 @@ func _on_VisibilityButton_pressed() -> void:
|
|||
Global.canvas.layers[i][3] = true
|
||||
get_child(0).get_child(0).text = "V"
|
||||
|
||||
|
||||
func _on_VisibilityButton_button_down() -> void:
|
||||
visibility_toggled = true
|
||||
|
||||
func _on_VisibilityButton_button_up() -> void:
|
||||
visibility_toggled = false
|
||||
func _on_LineEdit_text_changed(new_text : String) -> void:
|
||||
Global.canvas.layers[i][2] = new_text
|
||||
$HBoxContainer/Label.text = new_text
|
|
@ -585,6 +585,8 @@ func _on_AddFrame_pressed() -> void:
|
|||
var canvas = load("res://Prefabs/Canvas.tscn").instance()
|
||||
canvas.size = Global.canvas.size
|
||||
canvas.frame = Global.canvases.size()
|
||||
for child in Global.frame_container.get_children():
|
||||
child.get_node("FrameButton").pressed = false
|
||||
for canvas in Global.canvases:
|
||||
canvas.visible = false
|
||||
Global.canvases.append(canvas)
|
||||
|
@ -612,6 +614,7 @@ func _on_RemoveFrame_pressed() -> void:
|
|||
Global.remove_frame_button.disabled = true
|
||||
Global.remove_frame_button.mouse_default_cursor_shape = Control.CURSOR_FORBIDDEN
|
||||
Global.canvas = Global.canvases[Global.current_frame]
|
||||
Global.frame_container.get_child(Global.current_frame).get_node("FrameButton").pressed = true
|
||||
Global.canvas.visible = true
|
||||
Global.canvas.generate_layer_panels()
|
||||
Global.handle_layer_order_buttons()
|
||||
|
@ -629,6 +632,8 @@ func _on_CloneFrame_pressed() -> void:
|
|||
tex.create_from_image(sprite, 0)
|
||||
canvas.layers.append([sprite, tex, layer[2], layer[3]])
|
||||
canvas.frame = Global.canvases.size()
|
||||
for child in Global.frame_container.get_children():
|
||||
child.get_node("FrameButton").pressed = false
|
||||
for canvas in Global.canvases:
|
||||
canvas.visible = false
|
||||
Global.canvases.append(canvas)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue