mirror of
https://github.com/Orama-Interactive/Pixelorama.git
synced 2025-02-20 12:33:14 +00:00
The selected cel (?) is now pressed, based on current layer and frame
All the other buttons are pressed = false. Also removed some legacy code.
This commit is contained in:
parent
87629fdf2f
commit
2a5dfa7ea2
4 changed files with 25 additions and 57 deletions
|
@ -23,10 +23,7 @@ func add_frame() -> void:
|
|||
Global.undo_redo.add_do_property(Global, "hidden_canvases", Global.hidden_canvases)
|
||||
Global.undo_redo.add_do_property(Global, "canvas", new_canvas)
|
||||
Global.undo_redo.add_do_property(Global, "current_frame", new_canvases.size() - 1)
|
||||
for i in range(Global.layers.size()):
|
||||
for child in Global.layers[i][2].get_children():
|
||||
Global.undo_redo.add_do_property(child, "pressed", false)
|
||||
Global.undo_redo.add_undo_property(child, "pressed", child.pressed)
|
||||
|
||||
for c in Global.canvases:
|
||||
Global.undo_redo.add_do_property(c, "visible", false)
|
||||
Global.undo_redo.add_undo_property(c, "visible", c.visible)
|
||||
|
|
|
@ -417,7 +417,7 @@ func _input(event : InputEvent) -> void:
|
|||
previous_mouse_pos.x = clamp(previous_mouse_pos.x, location.x, location.x + size.x)
|
||||
previous_mouse_pos.y = clamp(previous_mouse_pos.y, location.y, location.y + size.y)
|
||||
if sprite_changed_this_frame:
|
||||
update_texture(Global.current_layer, (Input.is_action_just_released("left_mouse") || Input.is_action_just_released("right_mouse")))
|
||||
update_texture(Global.current_layer)
|
||||
|
||||
func camera_zoom() -> void:
|
||||
# Set camera zoom based on the sprite size
|
||||
|
@ -489,25 +489,12 @@ func handle_redo(action : String) -> void:
|
|||
Global.undo_redo.add_do_method(Global, "redo", canvases, layer_index)
|
||||
Global.undo_redo.commit_action()
|
||||
|
||||
func update_texture(layer_index : int, update_frame_tex := true) -> void:
|
||||
func update_texture(layer_index : int) -> void:
|
||||
layers[layer_index][1].create_from_image(layers[layer_index][0], 0)
|
||||
# var layer_container := get_layer_container(layer_index)
|
||||
# if layer_container:
|
||||
# layer_container.get_child(1).get_child(0).texture = layers[layer_index][1]
|
||||
|
||||
var frame_texture_rect : TextureRect
|
||||
frame_texture_rect = Global.find_node_by_name(Global.layers[layer_index][2].get_child(frame),"FrameTexture")
|
||||
frame_texture_rect.texture = layers[layer_index][1]
|
||||
# if update_frame_tex:
|
||||
# # This code is used to update the texture in the animation timeline frame button
|
||||
# # but blend_rect causes major performance issues on large images
|
||||
# var whole_image := Image.new()
|
||||
# whole_image.create(size.x, size.y, false, Image.FORMAT_RGBA8)
|
||||
# for layer in layers:
|
||||
# whole_image.blend_rect(layer[0], Rect2(position, size), Vector2.ZERO)
|
||||
# layer[0].lock()
|
||||
# var whole_image_texture := ImageTexture.new()
|
||||
# whole_image_texture.create_from_image(whole_image, 0)
|
||||
# frame_texture_rect.texture = whole_image_texture
|
||||
|
||||
func frame_changed(value : int) -> void:
|
||||
frame = value
|
||||
|
@ -521,29 +508,6 @@ func get_layer_container(layer_index : int) -> LayerContainer:
|
|||
return container
|
||||
return null
|
||||
|
||||
func generate_layer_panels() -> void:
|
||||
return
|
||||
for child in Global.layers_container.get_children():
|
||||
if child is LayerContainer:
|
||||
child.queue_free()
|
||||
|
||||
current_layer_index = layers.size() - 1
|
||||
if layers.size() == 1:
|
||||
Global.remove_layer_button.disabled = true
|
||||
Global.remove_layer_button.mouse_default_cursor_shape = Control.CURSOR_FORBIDDEN
|
||||
else:
|
||||
Global.remove_layer_button.disabled = false
|
||||
Global.remove_layer_button.mouse_default_cursor_shape = Control.CURSOR_POINTING_HAND
|
||||
|
||||
for i in range(layers.size() -1, -1, -1):
|
||||
var layer_container = load("res://Prefabs/LayerContainer.tscn").instance()
|
||||
# if !layers[i][2]:
|
||||
# layers[i][2] = tr("Layer") + " %s" % i
|
||||
layer_container.i = i
|
||||
layer_container.get_child(0).get_child(1).text = layers[i][2]
|
||||
layer_container.get_child(0).get_child(2).text = layers[i][2]
|
||||
Global.layer_and_frame_container.add_child(layer_container)
|
||||
|
||||
func pencil_and_eraser(sprite : Image, mouse_pos : Vector2, color : Color, current_mouse_button : String, current_action := "None") -> void:
|
||||
if made_line:
|
||||
return
|
||||
|
|
|
@ -12,8 +12,6 @@ func _on_FrameButton_pressed() -> void:
|
|||
if Input.is_action_just_released("left_mouse"):
|
||||
Global.current_frame = frame
|
||||
Global.current_layer = layer
|
||||
print(str(frame), str(layer))
|
||||
print("Current layer: %s" % Global.current_layer)
|
||||
elif Input.is_action_just_released("right_mouse"):
|
||||
if Global.canvases.size() == 1:
|
||||
popup_menu.set_item_disabled(0, true)
|
||||
|
|
|
@ -473,10 +473,12 @@ func canvases_changed(value : Array) -> void:
|
|||
canvases = value
|
||||
for container in frames_container.get_children():
|
||||
for button in container.get_children():
|
||||
container.remove_child(button)
|
||||
button.queue_free()
|
||||
frames_container.remove_child(container)
|
||||
|
||||
for frame_id in frame_ids.get_children():
|
||||
frame_ids.remove_child(frame_id)
|
||||
frame_id.queue_free()
|
||||
|
||||
for i in range(layers.size() - 1, -1, -1):
|
||||
|
@ -506,6 +508,7 @@ func layers_changed(value : Array) -> void:
|
|||
|
||||
for container in frames_container.get_children():
|
||||
for button in container.get_children():
|
||||
container.remove_child(button)
|
||||
button.queue_free()
|
||||
frames_container.remove_child(container)
|
||||
|
||||
|
@ -524,13 +527,13 @@ func layers_changed(value : Array) -> void:
|
|||
var frame_button = load("res://Prefabs/FrameButton.tscn").instance()
|
||||
frame_button.frame = j
|
||||
frame_button.layer = i
|
||||
frame_button.pressed = true
|
||||
frame_button.get_child(0).texture = Global.canvases[j].layers[i][1]
|
||||
|
||||
layers[i][2].add_child(frame_button)
|
||||
|
||||
var layer_button = layers_container.get_child(layers_container.get_child_count() - 1 - current_layer)
|
||||
layer_button.pressed = true
|
||||
self.current_frame = current_frame # Call frame_changed to update UI
|
||||
|
||||
if layers.size() == 1:
|
||||
remove_layer_button.disabled = true
|
||||
|
@ -549,23 +552,26 @@ func frame_changed(value : int) -> void:
|
|||
current_frame = value
|
||||
current_frame_label.text = tr("Current frame:") + " %s/%s" % [str(current_frame + 1), canvases.size()]
|
||||
|
||||
for c in canvases:
|
||||
var i := 0
|
||||
for c in canvases: # De-select all the other canvases/frames
|
||||
c.visible = false
|
||||
c.is_making_line = false
|
||||
c.line_2d.set_point_position(1, c.line_2d.points[0])
|
||||
canvas = canvases[current_frame]
|
||||
canvas.visible = true
|
||||
#canvas.generate_layer_panels()
|
||||
# Make all frame buttons unpressed
|
||||
for c in canvases:
|
||||
var text_color := Color.white
|
||||
if theme_type == "Gold" || theme_type == "Light":
|
||||
text_color = Color.black
|
||||
#c.frame_button.pressed = false
|
||||
#c.frame_button.get_node("FrameID").add_color_override("font_color", text_color)
|
||||
# Make only the current frame button pressed
|
||||
#canvas.frame_button.pressed = true
|
||||
#canvas.frame_button.get_node("FrameID").add_color_override("font_color", Color("#3c5d75"))
|
||||
frame_ids.get_child(i).add_color_override("font_color", text_color)
|
||||
for layer in layers:
|
||||
if i < layer[2].get_child_count():
|
||||
layer[2].get_child(i).pressed = false
|
||||
i += 1
|
||||
|
||||
# Select the new canvas/frame
|
||||
canvas = canvases[current_frame]
|
||||
canvas.visible = true
|
||||
frame_ids.get_child(current_frame).add_color_override("font_color", Color("#3c5d75"))
|
||||
if current_frame < layers[current_layer][2].get_child_count():
|
||||
layers[current_layer][2].get_child(current_frame).pressed = true
|
||||
|
||||
func layer_changed(value : int) -> void:
|
||||
current_layer = value
|
||||
|
@ -597,6 +603,9 @@ func layer_changed(value : int) -> void:
|
|||
merge_down_layer_button.disabled = true
|
||||
merge_down_layer_button.mouse_default_cursor_shape = Control.CURSOR_FORBIDDEN
|
||||
|
||||
yield(get_tree().create_timer(0.01), "timeout")
|
||||
self.current_frame = current_frame # Call frame_changed to update UI
|
||||
|
||||
func create_brush_button(brush_img : Image, brush_type := Brush_Types.CUSTOM, hint_tooltip := "") -> void:
|
||||
var brush_container
|
||||
var brush_button = load("res://Prefabs/BrushButton.tscn").instance()
|
||||
|
|
Loading…
Add table
Reference in a new issue