From 798af880d8f5048638b04307aab9b20a57871870 Mon Sep 17 00:00:00 2001 From: Relintai Date: Sun, 29 Nov 2020 21:38:42 +0100 Subject: [PATCH] Started removing animation related things, I don't think it's needed for an in-engine editor, as you can trivially create animated sprites to test. --- addons/draw_gd/src/Autoload/DrawGD.gd | 57 -- addons/draw_gd/src/Classes/Project.gd | 4 - addons/draw_gd/src/Tools/Draw.gd | 11 +- addons/draw_gd/src/UI/Canvas/Canvas.gd | 2 - addons/draw_gd/src/UI/Canvas/CanvasPreview.gd | 5 +- .../src/UI/Timeline/AnimationTimeline.gd | 313 --------- .../src/UI/Timeline/AnimationTimeline.tscn | 631 +----------------- 7 files changed, 20 insertions(+), 1003 deletions(-) diff --git a/addons/draw_gd/src/Autoload/DrawGD.gd b/addons/draw_gd/src/Autoload/DrawGD.gd index f4a514a..9357489 100644 --- a/addons/draw_gd/src/Autoload/DrawGD.gd +++ b/addons/draw_gd/src/Autoload/DrawGD.gd @@ -75,13 +75,6 @@ var tile_mode := false var draw_grid := false var show_rulers := true var show_guides := true -var show_animation_timeline := true - -# Onion skinning options -var onion_skinning := false -var onion_skinning_past_rate := 1.0 -var onion_skinning_future_rate := 1.0 -var onion_skinning_blue_red := false # Palettes var palettes := {} @@ -127,13 +120,8 @@ var patterns_popup : Popup var animation_timeline : Panel -var animation_timer : Timer var frame_ids : HBoxContainer var current_frame_mark_label : Label -var onion_skinning_button : BaseButton -var loop_animation_button : BaseButton -var play_forward : BaseButton -var play_backwards : BaseButton var layers_container : VBoxContainer var frames_container : VBoxContainer var tag_container : Control @@ -243,13 +231,8 @@ func refresh_nodes(): layers_container = find_node_by_name(animation_timeline, "LayersContainer") frames_container = find_node_by_name(animation_timeline, "FramesContainer") - animation_timer = find_node_by_name(animation_timeline, "AnimationTimer") frame_ids = find_node_by_name(animation_timeline, "FrameIDs") current_frame_mark_label = find_node_by_name(control, "CurrentFrameMark") - onion_skinning_button = find_node_by_name(animation_timeline, "OnionSkinning") - loop_animation_button = find_node_by_name(animation_timeline, "LoopAnim") - play_forward = find_node_by_name(animation_timeline, "PlayForward") - play_backwards = find_node_by_name(animation_timeline, "PlayBackwards") tag_container = find_node_by_name(animation_timeline, "TagContainer") tag_dialog = find_node_by_name(animation_timeline, "FrameTagDialog") @@ -338,13 +321,6 @@ func undo(_frame_index := -1, _layer_index := -1, project : Project = current_pr canvas.grid.update() cursor_position_label.text = "[%s×%s]" % [project.size.x, project.size.y] - elif "Frame" in action_name: - # This actually means that frames.size is one, but it hasn't been updated yet - if project.frames.size() == 2: # Stop animating - play_forward.pressed = false - play_backwards.pressed = false - animation_timer.stop() - canvas.update() if !project.has_changed: project.has_changed = true @@ -369,11 +345,6 @@ func redo(_frame_index := -1, _layer_index := -1, project : Project = current_pr canvas.grid.update() cursor_position_label.text = "[%s×%s]" % [project.size.x, project.size.y] - elif "Frame" in action_name: - if project.frames.size() == 1: # Stop animating - play_forward.pressed = false - play_backwards.pressed = false - animation_timer.stop() canvas.update() if !project.has_changed: @@ -494,34 +465,6 @@ Hold %s to make a line""") % ["", "", "Shift"] (%s)""") % "" #InputMap.get_action_list("switch_colors")[0].as_text() - var first_frame : BaseButton = find_node_by_name(self, "FirstFrame") - first_frame.hint_tooltip = tr("""Jump to the first frame -(%s)""") % "" -#InputMap.get_action_list("go_to_first_frame")[0].as_text() - - var previous_frame : BaseButton = find_node_by_name(self, "PreviousFrame") - previous_frame.hint_tooltip = tr("""Go to the previous frame -(%s)""") % "" -#InputMap.get_action_list("go_to_previous_frame")[0].as_text() - - play_backwards.hint_tooltip = tr("""Play the animation backwards (from end to beginning) -(%s)""") % "" -#InputMap.get_action_list("play_backwards")[0].as_text() - - play_forward.hint_tooltip = tr("""Play the animation forward (from beginning to end) -(%s)""") % "" -#InputMap.get_action_list("play_forward")[0].as_text() - - var next_frame : BaseButton = find_node_by_name(self, "NextFrame") - next_frame.hint_tooltip = tr("""Go to the next frame -(%s)""") % "" -#InputMap.get_action_list("go_to_next_frame")[0].as_text() - - var last_frame : BaseButton = find_node_by_name(self, "LastFrame") - last_frame.hint_tooltip = tr("""Jump to the last frame -(%s)""") % "" -#InputMap.get_action_list("go_to_last_frame")[0].as_text() - func _exit_tree() -> void: config_cache.set_value("window", "screen", OS.current_screen) diff --git a/addons/draw_gd/src/Classes/Project.gd b/addons/draw_gd/src/Classes/Project.gd index d6c9385..b6be544 100644 --- a/addons/draw_gd/src/Classes/Project.gd +++ b/addons/draw_gd/src/Classes/Project.gd @@ -443,10 +443,6 @@ func frame_changed(value : int) -> void: if layers and current_frame < layers[current_layer].frame_container.get_child_count(): layers[current_layer].frame_container.get_child(current_frame).pressed = true - DrawGD.disable_button(DrawGD.remove_frame_button, frames.size() == 1) - DrawGD.disable_button(DrawGD.move_left_frame_button, frames.size() == 1 or current_frame == 0) - DrawGD.disable_button(DrawGD.move_right_frame_button, frames.size() == 1 or current_frame == frames.size() - 1) - DrawGD.canvas.update() DrawGD.transparent_checker._ready() # To update the rect size diff --git a/addons/draw_gd/src/Tools/Draw.gd b/addons/draw_gd/src/Tools/Draw.gd index f5cf758..97aef4c 100644 --- a/addons/draw_gd/src/Tools/Draw.gd +++ b/addons/draw_gd/src/Tools/Draw.gd @@ -160,9 +160,9 @@ func commit_undo(action : String) -> void: var project : Project = DrawGD.current_project var frame := -1 var layer := -1 - if DrawGD.animation_timer.is_stopped(): - frame = project.current_frame - layer = project.current_layer + + frame = project.current_frame + layer = project.current_layer project.undos += 1 project.undo_redo.create_action(action) @@ -511,8 +511,9 @@ func _get_undo_data() -> Dictionary: var data = {} var project : Project = DrawGD.current_project var frames := project.frames - if DrawGD.animation_timer.is_stopped(): - frames = [project.frames[project.current_frame]] + + frames = [project.frames[project.current_frame]] + for frame in frames: var image : Image = frame.cels[project.current_layer].image image.unlock() diff --git a/addons/draw_gd/src/UI/Canvas/Canvas.gd b/addons/draw_gd/src/UI/Canvas/Canvas.gd index 9a7e085..ec528e1 100644 --- a/addons/draw_gd/src/UI/Canvas/Canvas.gd +++ b/addons/draw_gd/src/UI/Canvas/Canvas.gd @@ -37,8 +37,6 @@ func _draw() -> void: DrawGD.small_preview_viewport.get_child(0).get_node("CanvasPreview").update() var current_cels : Array = DrawGD.current_project.frames[DrawGD.current_project.current_frame].cels - if DrawGD.onion_skinning: - onion_skinning() # Draw current frame layers for i in range(DrawGD.current_project.layers.size()): diff --git a/addons/draw_gd/src/UI/Canvas/CanvasPreview.gd b/addons/draw_gd/src/UI/Canvas/CanvasPreview.gd index e5f0e12..3d53b3d 100644 --- a/addons/draw_gd/src/UI/Canvas/CanvasPreview.gd +++ b/addons/draw_gd/src/UI/Canvas/CanvasPreview.gd @@ -20,10 +20,7 @@ func _draw() -> void: if frame >= current_project.frames.size(): frame = current_project.current_frame - $AnimationTimer.wait_time = DrawGD.animation_timer.wait_time - - if animation_timer.is_stopped(): - frame = current_project.current_frame + var current_cels : Array = current_project.frames[frame].cels # Draw current frame layers diff --git a/addons/draw_gd/src/UI/Timeline/AnimationTimeline.gd b/addons/draw_gd/src/UI/Timeline/AnimationTimeline.gd index 8498e9b..4568093 100644 --- a/addons/draw_gd/src/UI/Timeline/AnimationTimeline.gd +++ b/addons/draw_gd/src/UI/Timeline/AnimationTimeline.gd @@ -23,7 +23,6 @@ func _ready() -> void: timeline_scroll = DrawGD.find_node_by_name(self, "TimelineScroll") tag_scroll_container = DrawGD.find_node_by_name(self, "TagScroll") timeline_scroll.get_h_scrollbar().connect("value_changed", self, "_h_scroll_changed") - DrawGD.animation_timer.wait_time = 1 / fps func _h_scroll_changed(value : float) -> void: @@ -32,321 +31,9 @@ func _h_scroll_changed(value : float) -> void: tag_scroll_container.scroll_horizontal = value -func add_frame() -> void: - var frame : Frame = DrawGD.canvas.new_empty_frame() - var new_frames : Array = DrawGD.current_project.frames.duplicate() - new_frames.append(frame) - var new_layers : Array = DrawGD.current_project.layers.duplicate() - # Loop through the array to create new classes for each element, so that they - # won't be the same as the original array's classes. Needed for undo/redo to work properly. - for i in new_layers.size(): - var new_linked_cels = new_layers[i].linked_cels.duplicate() - new_layers[i] = Layer.new(new_layers[i].name, new_layers[i].visible, new_layers[i].locked, new_layers[i].frame_container, new_layers[i].new_cels_linked, new_linked_cels) - - for l_i in range(new_layers.size()): - if new_layers[l_i].new_cels_linked: # If the link button is pressed - new_layers[l_i].linked_cels.append(frame) - frame.cels[l_i].image = new_layers[l_i].linked_cels[0].cels[l_i].image - frame.cels[l_i].image_texture = new_layers[l_i].linked_cels[0].cels[l_i].image_texture - - DrawGD.current_project.undos += 1 - DrawGD.current_project.undo_redo.create_action("Add Frame") - DrawGD.current_project.undo_redo.add_do_method(DrawGD, "redo") - DrawGD.current_project.undo_redo.add_undo_method(DrawGD, "undo") - - DrawGD.current_project.undo_redo.add_do_property(DrawGD.current_project, "frames", new_frames) - DrawGD.current_project.undo_redo.add_do_property(DrawGD.current_project, "current_frame", new_frames.size() - 1) - DrawGD.current_project.undo_redo.add_do_property(DrawGD.current_project, "layers", new_layers) - - DrawGD.current_project.undo_redo.add_undo_property(DrawGD.current_project, "frames", DrawGD.current_project.frames) - DrawGD.current_project.undo_redo.add_undo_property(DrawGD.current_project, "current_frame", DrawGD.current_project.current_frame) - DrawGD.current_project.undo_redo.add_undo_property(DrawGD.current_project, "layers", DrawGD.current_project.layers) - DrawGD.current_project.undo_redo.commit_action() - - -func _on_DeleteFrame_pressed(frame := -1) -> void: - if DrawGD.current_project.frames.size() == 1: - return - if frame == -1: - frame = DrawGD.current_project.current_frame - - var frame_to_delete : Frame = DrawGD.current_project.frames[frame] - var new_frames : Array = DrawGD.current_project.frames.duplicate() - new_frames.erase(frame_to_delete) - - var DrawGD : Node = null - - var current_frame = DrawGD.current_project.current_frame - if current_frame > 0 && current_frame == new_frames.size(): # If it's the last frame - current_frame -= 1 - - var new_animation_tags = DrawGD.current_project.animation_tags.duplicate() - # Loop through the tags to create new classes for them, so that they won't be the same - # as DrawGD.current_project.animation_tags's classes. Needed for undo/redo to work properly. - for i in new_animation_tags.size(): - new_animation_tags[i] = AnimationTag.new(new_animation_tags[i].name, new_animation_tags[i].color, new_animation_tags[i].from, new_animation_tags[i].to) - - # Loop through the tags to see if the frame is in one - for tag in new_animation_tags: - if frame + 1 >= tag.from && frame + 1 <= tag.to: - if tag.from == tag.to: # If we're deleting the only frame in the tag - new_animation_tags.erase(tag) - else: - tag.to -= 1 - elif frame + 1 < tag.from: - tag.from -= 1 - tag.to -= 1 - - # Check if one of the cels of the frame is linked - # if they are, unlink them too - # this prevents removed cels being kept in linked memory - var new_layers : Array = DrawGD.current_project.layers.duplicate() - # Loop through the array to create new classes for each element, so that they - # won't be the same as the original array's classes. Needed for undo/redo to work properly. - for i in new_layers.size(): - var new_linked_cels = new_layers[i].linked_cels.duplicate() - new_layers[i] = Layer.new(new_layers[i].name, new_layers[i].visible, new_layers[i].locked, new_layers[i].frame_container, new_layers[i].new_cels_linked, new_linked_cels) - - for layer in new_layers: - for linked in layer.linked_cels: - if linked == DrawGD.current_project.frames[frame]: - layer.linked_cels.erase(linked) - - DrawGD.current_project.undos += 1 - DrawGD.current_project.undo_redo.create_action("Remove Frame") - - DrawGD.current_project.undo_redo.add_do_property(DrawGD.current_project, "frames", new_frames) - DrawGD.current_project.undo_redo.add_do_property(DrawGD.current_project, "current_frame", current_frame) - DrawGD.current_project.undo_redo.add_do_property(DrawGD.current_project, "animation_tags", new_animation_tags) - DrawGD.current_project.undo_redo.add_do_property(DrawGD.current_project, "layers", new_layers) - - DrawGD.current_project.undo_redo.add_undo_property(DrawGD.current_project, "frames", DrawGD.current_project.frames) - DrawGD.current_project.undo_redo.add_undo_property(DrawGD.current_project, "current_frame", DrawGD.current_project.current_frame) - DrawGD.current_project.undo_redo.add_undo_property(DrawGD.current_project, "animation_tags", DrawGD.current_project.animation_tags) - DrawGD.current_project.undo_redo.add_undo_property(DrawGD.current_project, "layers", DrawGD.current_project.layers) - - DrawGD.current_project.undo_redo.add_do_method(DrawGD, "redo") - DrawGD.current_project.undo_redo.add_undo_method(DrawGD, "undo") - DrawGD.current_project.undo_redo.commit_action() - - -func _on_CopyFrame_pressed(frame := -1) -> void: - if frame == -1: - frame = DrawGD.current_project.current_frame - - var new_frame := Frame.new() - - var new_frames = DrawGD.current_project.frames.duplicate() - new_frames.insert(frame + 1, new_frame) - - for cel in DrawGD.current_project.frames[frame].cels: # Copy every cel - var sprite := Image.new() - sprite.copy_from(cel.image) - sprite.lock() - new_frame.cels.append(Cel.new(sprite, cel.opacity)) - - var new_animation_tags = DrawGD.current_project.animation_tags.duplicate() - # Loop through the tags to create new classes for them, so that they won't be the same - # as DrawGD.current_project.animation_tags's classes. Needed for undo/redo to work properly. - for i in new_animation_tags.size(): - new_animation_tags[i] = AnimationTag.new(new_animation_tags[i].name, new_animation_tags[i].color, new_animation_tags[i].from, new_animation_tags[i].to) - - # Loop through the tags to see if the frame is in one - for tag in new_animation_tags: - if frame + 1 >= tag.from && frame + 1 <= tag.to: - tag.to += 1 - - DrawGD.current_project.undos += 1 - DrawGD.current_project.undo_redo.create_action("Add Frame") - DrawGD.current_project.undo_redo.add_do_method(DrawGD, "redo") - DrawGD.current_project.undo_redo.add_undo_method(DrawGD, "undo") - - DrawGD.current_project.undo_redo.add_do_property(DrawGD.current_project, "frames", new_frames) - DrawGD.current_project.undo_redo.add_do_property(DrawGD.current_project, "current_frame", frame + 1) - DrawGD.current_project.undo_redo.add_do_property(DrawGD.current_project, "animation_tags", new_animation_tags) - for i in range(DrawGD.current_project.layers.size()): - for child in DrawGD.current_project.layers[i].frame_container.get_children(): - DrawGD.current_project.undo_redo.add_do_property(child, "pressed", false) - DrawGD.current_project.undo_redo.add_undo_property(child, "pressed", child.pressed) - - DrawGD.current_project.undo_redo.add_undo_property(DrawGD.current_project, "frames", DrawGD.current_project.frames) - DrawGD.current_project.undo_redo.add_undo_property(DrawGD.current_project, "current_frame", frame) - DrawGD.current_project.undo_redo.add_undo_property(DrawGD.current_project, "animation_tags", DrawGD.current_project.animation_tags) - DrawGD.current_project.undo_redo.commit_action() - - func _on_FrameTagButton_pressed() -> void: DrawGD.tag_dialog.popup_centered() -func _on_MoveLeft_pressed() -> void: - var frame : int = DrawGD.current_project.current_frame - if frame == 0: - return - DrawGD.current_project.layers[DrawGD.current_project.current_layer].frame_container.get_child(frame).change_frame_order(-1) - -func _on_MoveRight_pressed() -> void: - var frame : int = DrawGD.current_project.current_frame - if frame == last_frame: - return - DrawGD.current_project.layers[DrawGD.current_project.current_layer].frame_container.get_child(frame).change_frame_order(1) - -func _on_OnionSkinning_pressed() -> void: - DrawGD.onion_skinning = !DrawGD.onion_skinning - DrawGD.canvas.update() - var texture_button : TextureRect = DrawGD.onion_skinning_button.get_child(0) - if DrawGD.onion_skinning: - DrawGD.change_button_texturerect(texture_button, "onion_skinning.png") - else: - DrawGD.change_button_texturerect(texture_button, "onion_skinning_off.png") - -func _on_OnionSkinningSettings_pressed() -> void: - $OnionSkinningSettings.popup(Rect2(DrawGD.onion_skinning_button.rect_global_position.x - $OnionSkinningSettings.rect_size.x - 16, DrawGD.onion_skinning_button.rect_global_position.y - 106, 136, 126)) - - -func _on_LoopAnim_pressed() -> void: - var texture_button : TextureRect = DrawGD.loop_animation_button.get_child(0) - match animation_loop: - 0: # Make it loop - animation_loop = 1 - DrawGD.change_button_texturerect(texture_button, "loop.png") - DrawGD.loop_animation_button.hint_tooltip = "Cycle loop" - 1: # Make it ping-pong - animation_loop = 2 - DrawGD.change_button_texturerect(texture_button, "loop_pingpong.png") - DrawGD.loop_animation_button.hint_tooltip = "Ping-pong loop" - 2: # Make it stop - animation_loop = 0 - DrawGD.change_button_texturerect(texture_button, "loop_none.png") - DrawGD.loop_animation_button.hint_tooltip = "No loop" - - -func _on_PlayForward_toggled(button_pressed : bool) -> void: - if button_pressed: - DrawGD.change_button_texturerect(DrawGD.play_forward.get_child(0), "pause.png") - else: - DrawGD.change_button_texturerect(DrawGD.play_forward.get_child(0), "play.png") - - play_animation(button_pressed, true) - - -func _on_PlayBackwards_toggled(button_pressed : bool) -> void: - if button_pressed: - DrawGD.change_button_texturerect(DrawGD.play_backwards.get_child(0), "pause.png") - else: - DrawGD.change_button_texturerect(DrawGD.play_backwards.get_child(0), "play_backwards.png") - - play_animation(button_pressed, false) - - -func _on_AnimationTimer_timeout() -> void: - if first_frame == last_frame: - $AnimationTimer.stop() - return - - if animation_forward: - if DrawGD.current_project.current_frame < last_frame: - DrawGD.current_project.current_frame += 1 - else: - match animation_loop: - 0: # No loop - DrawGD.play_forward.pressed = false - DrawGD.play_backwards.pressed = false - DrawGD.animation_timer.stop() - 1: # Cycle loop - DrawGD.current_project.current_frame = first_frame - 2: # Ping pong loop - animation_forward = false - _on_AnimationTimer_timeout() - - else: - if DrawGD.current_project.current_frame > first_frame: - DrawGD.current_project.current_frame -= 1 - else: - match animation_loop: - 0: # No loop - DrawGD.play_backwards.pressed = false - DrawGD.play_forward.pressed = false - DrawGD.animation_timer.stop() - 1: # Cycle loop - DrawGD.current_project.current_frame = last_frame - 2: # Ping pong loop - animation_forward = true - _on_AnimationTimer_timeout() - - -func play_animation(play : bool, forward_dir : bool) -> void: - first_frame = 0 - last_frame = DrawGD.current_project.frames.size() - 1 - if DrawGD.play_only_tags: - for tag in DrawGD.current_project.animation_tags: - if DrawGD.current_project.current_frame + 1 >= tag.from && DrawGD.current_project.current_frame + 1 <= tag.to: - first_frame = tag.from - 1 - last_frame = min(DrawGD.current_project.frames.size() - 1, tag.to - 1) - - if first_frame == last_frame: - if forward_dir: - DrawGD.play_forward.pressed = false - else: - DrawGD.play_backwards.pressed = false - return - - if forward_dir: - DrawGD.play_backwards.disconnect("toggled", self, "_on_PlayBackwards_toggled") - DrawGD.play_backwards.pressed = false - DrawGD.change_button_texturerect(DrawGD.play_backwards.get_child(0), "play_backwards.png") - DrawGD.play_backwards.connect("toggled", self, "_on_PlayBackwards_toggled") - else: - DrawGD.play_forward.disconnect("toggled", self, "_on_PlayForward_toggled") - DrawGD.play_forward.pressed = false - DrawGD.change_button_texturerect(DrawGD.play_forward.get_child(0), "play.png") - DrawGD.play_forward.connect("toggled", self, "_on_PlayForward_toggled") - - if play: - DrawGD.animation_timer.wait_time = 1 / fps - DrawGD.animation_timer.start() - animation_forward = forward_dir - else: - DrawGD.animation_timer.stop() - - -func _on_NextFrame_pressed() -> void: - if DrawGD.current_project.current_frame < DrawGD.current_project.frames.size() - 1: - DrawGD.current_project.current_frame += 1 - - -func _on_PreviousFrame_pressed() -> void: - if DrawGD.current_project.current_frame > 0: - DrawGD.current_project.current_frame -= 1 - - -func _on_LastFrame_pressed() -> void: - DrawGD.current_project.current_frame = DrawGD.current_project.frames.size() - 1 - - -func _on_FirstFrame_pressed() -> void: - DrawGD.current_project.current_frame = 0 - - -func _on_FPSValue_value_changed(value : float) -> void: - fps = float(value) - DrawGD.animation_timer.wait_time = 1 / fps - - -func _on_PastOnionSkinning_value_changed(value : float) -> void: - DrawGD.onion_skinning_past_rate = int(value) - DrawGD.canvas.update() - - -func _on_FutureOnionSkinning_value_changed(value : float) -> void: - DrawGD.onion_skinning_future_rate = int(value) - DrawGD.canvas.update() - - -func _on_BlueRedMode_toggled(button_pressed : bool) -> void: - DrawGD.onion_skinning_blue_red = button_pressed - DrawGD.canvas.update() - - # Layer buttons func add_layer(is_new := true) -> void: diff --git a/addons/draw_gd/src/UI/Timeline/AnimationTimeline.tscn b/addons/draw_gd/src/UI/Timeline/AnimationTimeline.tscn index 56096d3..d633e12 100644 --- a/addons/draw_gd/src/UI/Timeline/AnimationTimeline.tscn +++ b/addons/draw_gd/src/UI/Timeline/AnimationTimeline.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=44 format=2] +[gd_scene load_steps=18 format=2] [ext_resource path="res://addons/draw_gd/src/UI/Timeline/AnimationTimeline.gd" type="Script" id=1] [ext_resource path="res://addons/draw_gd/assets/graphics/dark_themes/layers/new_layer.png" type="Texture" id=2] @@ -7,21 +7,7 @@ [ext_resource path="res://addons/draw_gd/assets/graphics/dark_themes/layers/move_down_disabled.png" type="Texture" id=5] [ext_resource path="res://addons/draw_gd/assets/graphics/dark_themes/layers/merge_down_disabled.png" type="Texture" id=6] [ext_resource path="res://addons/draw_gd/assets/graphics/dark_themes/layers/clone_layer.png" type="Texture" id=7] -[ext_resource path="res://addons/draw_gd/assets/graphics/dark_themes/timeline/move_arrow.png" type="Texture" id=8] [ext_resource path="res://addons/draw_gd/src/UI/Timeline/LayerButton.tscn" type="PackedScene" id=18] -[ext_resource path="res://addons/draw_gd/assets/graphics/dark_themes/timeline/new_frame.png" type="Texture" id=19] -[ext_resource path="res://addons/draw_gd/assets/graphics/dark_themes/timeline/remove_frame.png" type="Texture" id=20] -[ext_resource path="res://addons/draw_gd/assets/graphics/dark_themes/timeline/go_to_first_frame.png" type="Texture" id=21] -[ext_resource path="res://addons/draw_gd/assets/graphics/dark_themes/timeline/play.png" type="Texture" id=22] -[ext_resource path="res://addons/draw_gd/assets/graphics/dark_themes/timeline/previous_frame.png" type="Texture" id=23] -[ext_resource path="res://addons/draw_gd/assets/graphics/dark_themes/timeline/play_backwards.png" type="Texture" id=24] -[ext_resource path="res://addons/draw_gd/assets/graphics/dark_themes/timeline/go_to_last_frame.png" type="Texture" id=25] -[ext_resource path="res://addons/draw_gd/assets/graphics/dark_themes/timeline/next_frame.png" type="Texture" id=26] -[ext_resource path="res://addons/draw_gd/assets/graphics/dark_themes/timeline/copy_frame.png" type="Texture" id=27] -[ext_resource path="res://addons/draw_gd/assets/graphics/dark_themes/timeline/tag.png" type="Texture" id=28] -[ext_resource path="res://addons/draw_gd/assets/graphics/dark_themes/timeline/onion_skinning_off.png" type="Texture" id=29] -[ext_resource path="res://addons/draw_gd/assets/graphics/dark_themes/timeline/expandable.png" type="Texture" id=30] -[ext_resource path="res://addons/draw_gd/assets/graphics/dark_themes/timeline/loop.png" type="Texture" id=31] [ext_resource path="res://addons/draw_gd/src/UI/Timeline/FrameTagDialog.tscn" type="PackedScene" id=42] [sub_resource type="StyleBoxFlat" id=1] @@ -40,70 +26,26 @@ corner_radius_bottom_right = 5 corner_radius_bottom_left = 5 expand_margin_bottom = 32.0 -[sub_resource type="InputEventKey" id=3] -control = true -command = true -scancode = 16777229 +[sub_resource type="StyleBoxEmpty" id=3] -[sub_resource type="ShortCut" id=4] -shortcut = SubResource( 3 ) +[sub_resource type="StyleBoxEmpty" id=4] -[sub_resource type="InputEventKey" id=5] -control = true -command = true -scancode = 16777231 +[sub_resource type="StyleBoxEmpty" id=5] -[sub_resource type="ShortCut" id=6] -shortcut = SubResource( 5 ) +[sub_resource type="StyleBoxEmpty" id=6] -[sub_resource type="InputEventKey" id=7] -scancode = 16777247 +[sub_resource type="StyleBoxEmpty" id=7] -[sub_resource type="ShortCut" id=8] -shortcut = SubResource( 7 ) - -[sub_resource type="InputEventKey" id=9] -scancode = 16777248 - -[sub_resource type="ShortCut" id=10] -shortcut = SubResource( 9 ) - -[sub_resource type="InputEventKey" id=11] -control = true -command = true -scancode = 16777233 - -[sub_resource type="ShortCut" id=12] -shortcut = SubResource( 11 ) - -[sub_resource type="InputEventKey" id=13] -control = true -command = true -scancode = 16777230 - -[sub_resource type="ShortCut" id=14] -shortcut = SubResource( 13 ) - -[sub_resource type="StyleBoxEmpty" id=15] - -[sub_resource type="StyleBoxEmpty" id=16] - -[sub_resource type="StyleBoxEmpty" id=17] - -[sub_resource type="StyleBoxEmpty" id=18] - -[sub_resource type="StyleBoxEmpty" id=19] - -[sub_resource type="Theme" id=20] +[sub_resource type="Theme" id=8] HScrollBar/icons/decrement = null HScrollBar/icons/decrement_highlight = null HScrollBar/icons/increment = null HScrollBar/icons/increment_highlight = null -HScrollBar/styles/grabber = SubResource( 15 ) -HScrollBar/styles/grabber_highlight = SubResource( 16 ) -HScrollBar/styles/grabber_pressed = SubResource( 17 ) -HScrollBar/styles/scroll = SubResource( 18 ) -HScrollBar/styles/scroll_focus = SubResource( 19 ) +HScrollBar/styles/grabber = SubResource( 3 ) +HScrollBar/styles/grabber_highlight = SubResource( 4 ) +HScrollBar/styles/grabber_pressed = SubResource( 5 ) +HScrollBar/styles/scroll = SubResource( 6 ) +HScrollBar/styles/scroll_focus = SubResource( 7 ) [node name="AnimationTimeline" type="Panel"] margin_top = 438.0 @@ -320,482 +262,9 @@ __meta__ = { [node name="Control" type="Control" parent="AnimationContainer/TimelineContainer/TimelineButtons"] margin_left = 225.0 -margin_right = 386.0 -margin_bottom = 38.0 -size_flags_horizontal = 3 - -[node name="PanelContainer" type="PanelContainer" parent="AnimationContainer/TimelineContainer/TimelineButtons"] -margin_left = 390.0 margin_right = 902.0 margin_bottom = 38.0 - -[node name="AnimationButtons" type="HBoxContainer" parent="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer"] -margin_left = 7.0 -margin_top = 7.0 -margin_right = 505.0 -margin_bottom = 31.0 -rect_min_size = Vector2( 0, 24 ) size_flags_horizontal = 3 -custom_constants/separation = 40 -alignment = 2 - -[node name="FrameButtons" type="HBoxContainer" parent="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer/AnimationButtons"] -margin_right = 140.0 -margin_bottom = 24.0 - -[node name="AddFrame" type="Button" parent="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer/AnimationButtons/FrameButtons" groups=[ -"UIButtons", -]] -margin_top = 2.0 -margin_right = 20.0 -margin_bottom = 22.0 -rect_min_size = Vector2( 20, 0 ) -hint_tooltip = "Add a new frame" -focus_mode = 0 -mouse_default_cursor_shape = 2 -size_flags_horizontal = 0 -size_flags_vertical = 4 - -[node name="TextureRect" type="TextureRect" parent="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer/AnimationButtons/FrameButtons/AddFrame"] -anchor_left = 0.5 -anchor_top = 0.5 -anchor_right = 0.5 -anchor_bottom = 0.5 -margin_left = -6.0 -margin_top = -6.0 -margin_right = 6.0 -margin_bottom = 6.0 -texture = ExtResource( 19 ) -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="DeleteFrame" type="Button" parent="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer/AnimationButtons/FrameButtons" groups=[ -"UIButtons", -]] -margin_left = 24.0 -margin_top = 2.0 -margin_right = 44.0 -margin_bottom = 22.0 -rect_min_size = Vector2( 20, 0 ) -hint_tooltip = "Remove Frame" -focus_mode = 0 -mouse_default_cursor_shape = 2 -size_flags_horizontal = 0 -size_flags_vertical = 4 - -[node name="TextureRect" type="TextureRect" parent="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer/AnimationButtons/FrameButtons/DeleteFrame"] -anchor_left = 0.5 -anchor_top = 0.5 -anchor_right = 0.5 -anchor_bottom = 0.5 -margin_left = -6.0 -margin_top = -1.0 -margin_right = 6.0 -margin_bottom = 1.0 -size_flags_horizontal = 0 -size_flags_vertical = 0 -texture = ExtResource( 20 ) -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="CopyFrame" type="Button" parent="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer/AnimationButtons/FrameButtons" groups=[ -"UIButtons", -]] -margin_left = 48.0 -margin_top = 2.0 -margin_right = 68.0 -margin_bottom = 22.0 -rect_min_size = Vector2( 20, 0 ) -hint_tooltip = "Clone Frame" -focus_mode = 0 -mouse_default_cursor_shape = 2 -size_flags_horizontal = 0 -size_flags_vertical = 4 - -[node name="TextureRect" type="TextureRect" parent="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer/AnimationButtons/FrameButtons/CopyFrame"] -anchor_left = 0.5 -anchor_top = 0.5 -anchor_right = 0.5 -anchor_bottom = 0.5 -margin_left = -5.0 -margin_top = -7.0 -margin_right = 5.0 -margin_bottom = 7.0 -texture = ExtResource( 27 ) -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="FrameTagButton" type="Button" parent="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer/AnimationButtons/FrameButtons" groups=[ -"UIButtons", -]] -margin_left = 72.0 -margin_top = 2.0 -margin_right = 92.0 -margin_bottom = 22.0 -rect_min_size = Vector2( 20, 0 ) -hint_tooltip = "Manage frame tags" -focus_mode = 0 -mouse_default_cursor_shape = 2 -size_flags_horizontal = 0 -size_flags_vertical = 4 - -[node name="TextureRect" type="TextureRect" parent="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer/AnimationButtons/FrameButtons/FrameTagButton"] -anchor_left = 0.5 -anchor_top = 0.5 -anchor_right = 0.5 -anchor_bottom = 0.5 -margin_left = -7.0 -margin_top = -7.0 -margin_right = 7.0 -margin_bottom = 7.0 -texture = ExtResource( 28 ) -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="MoveLeft" type="Button" parent="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer/AnimationButtons/FrameButtons" groups=[ -"UIButtons", -]] -margin_left = 96.0 -margin_top = 2.0 -margin_right = 116.0 -margin_bottom = 22.0 -rect_min_size = Vector2( 20, 0 ) -hint_tooltip = "Move the selected frame to the left." -focus_mode = 0 -mouse_default_cursor_shape = 2 -size_flags_horizontal = 0 -size_flags_vertical = 4 - -[node name="TextureRect" type="TextureRect" parent="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer/AnimationButtons/FrameButtons/MoveLeft"] -anchor_left = 0.5 -anchor_top = 0.5 -anchor_right = 0.5 -anchor_bottom = 0.5 -margin_left = -7.5 -margin_top = -5.5 -margin_right = 7.5 -margin_bottom = 5.5 -texture = ExtResource( 8 ) -flip_h = true -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="MoveRight" type="Button" parent="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer/AnimationButtons/FrameButtons" groups=[ -"UIButtons", -]] -margin_left = 120.0 -margin_top = 2.0 -margin_right = 140.0 -margin_bottom = 22.0 -rect_min_size = Vector2( 20, 0 ) -hint_tooltip = "Move the selected frame to the right." -focus_mode = 0 -mouse_default_cursor_shape = 2 -size_flags_horizontal = 0 -size_flags_vertical = 4 - -[node name="TextureRect" type="TextureRect" parent="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer/AnimationButtons/FrameButtons/MoveRight"] -anchor_left = 0.5 -anchor_top = 0.5 -anchor_right = 0.5 -anchor_bottom = 0.5 -margin_left = -7.5 -margin_top = -5.5 -margin_right = 7.5 -margin_bottom = 5.5 -texture = ExtResource( 8 ) -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="PlaybackButtons" type="HBoxContainer" parent="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer/AnimationButtons"] -margin_left = 180.0 -margin_right = 320.0 -margin_bottom = 24.0 - -[node name="FirstFrame" type="Button" parent="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer/AnimationButtons/PlaybackButtons" groups=[ -"UIButtons", -]] -margin_top = 2.0 -margin_right = 20.0 -margin_bottom = 22.0 -rect_min_size = Vector2( 20, 0 ) -hint_tooltip = "FIRSTFRAME_HT" -focus_mode = 0 -mouse_default_cursor_shape = 2 -size_flags_vertical = 4 -shortcut_in_tooltip = false -shortcut = SubResource( 4 ) - -[node name="TextureRect" type="TextureRect" parent="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer/AnimationButtons/PlaybackButtons/FirstFrame"] -anchor_left = 0.5 -anchor_top = 0.5 -anchor_right = 0.5 -anchor_bottom = 0.5 -margin_left = -5.5 -margin_top = -6.0 -margin_right = 5.5 -margin_bottom = 6.0 -texture = ExtResource( 21 ) -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="PreviousFrame" type="Button" parent="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer/AnimationButtons/PlaybackButtons" groups=[ -"UIButtons", -]] -margin_left = 24.0 -margin_top = 2.0 -margin_right = 44.0 -margin_bottom = 22.0 -rect_min_size = Vector2( 20, 0 ) -hint_tooltip = "PREVIOUSFRAME_HT" -focus_mode = 0 -mouse_default_cursor_shape = 2 -size_flags_vertical = 4 -shortcut_in_tooltip = false -shortcut = SubResource( 6 ) - -[node name="TextureRect" type="TextureRect" parent="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer/AnimationButtons/PlaybackButtons/PreviousFrame"] -anchor_left = 0.5 -anchor_top = 0.5 -anchor_right = 0.5 -anchor_bottom = 0.5 -margin_left = -5.5 -margin_top = -6.0 -margin_right = 5.5 -margin_bottom = 6.0 -texture = ExtResource( 23 ) -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="PlayBackwards" type="Button" parent="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer/AnimationButtons/PlaybackButtons" groups=[ -"UIButtons", -]] -margin_left = 48.0 -margin_top = 2.0 -margin_right = 68.0 -margin_bottom = 22.0 -rect_min_size = Vector2( 20, 0 ) -hint_tooltip = "PLAYBACKWARDS_HT" -focus_mode = 0 -mouse_default_cursor_shape = 2 -size_flags_vertical = 4 -toggle_mode = true -shortcut_in_tooltip = false -shortcut = SubResource( 8 ) - -[node name="TextureRect" type="TextureRect" parent="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer/AnimationButtons/PlaybackButtons/PlayBackwards"] -anchor_left = 0.5 -anchor_top = 0.5 -anchor_right = 0.5 -anchor_bottom = 0.5 -margin_left = -4.0 -margin_top = -6.0 -margin_right = 3.0 -margin_bottom = 6.0 -texture = ExtResource( 24 ) -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="PlayForward" type="Button" parent="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer/AnimationButtons/PlaybackButtons" groups=[ -"UIButtons", -]] -margin_left = 72.0 -margin_top = 2.0 -margin_right = 92.0 -margin_bottom = 22.0 -rect_min_size = Vector2( 20, 0 ) -hint_tooltip = "PLAYFORWARD_HT" -focus_mode = 0 -mouse_default_cursor_shape = 2 -size_flags_horizontal = 0 -size_flags_vertical = 4 -toggle_mode = true -shortcut_in_tooltip = false -shortcut = SubResource( 10 ) - -[node name="TextureRect" type="TextureRect" parent="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer/AnimationButtons/PlaybackButtons/PlayForward"] -anchor_left = 0.5 -anchor_top = 0.5 -anchor_right = 0.5 -anchor_bottom = 0.5 -margin_left = -3.5 -margin_top = -6.0 -margin_right = 3.5 -margin_bottom = 6.0 -texture = ExtResource( 22 ) -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="NextFrame" type="Button" parent="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer/AnimationButtons/PlaybackButtons" groups=[ -"UIButtons", -]] -margin_left = 96.0 -margin_top = 2.0 -margin_right = 116.0 -margin_bottom = 22.0 -rect_min_size = Vector2( 20, 0 ) -hint_tooltip = "NEXTFRAME_HT" -focus_mode = 0 -mouse_default_cursor_shape = 2 -size_flags_vertical = 4 -shortcut_in_tooltip = false -shortcut = SubResource( 12 ) - -[node name="TextureRect" type="TextureRect" parent="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer/AnimationButtons/PlaybackButtons/NextFrame"] -anchor_left = 0.5 -anchor_top = 0.5 -anchor_right = 0.5 -anchor_bottom = 0.5 -margin_left = -5.5 -margin_top = -6.0 -margin_right = 5.5 -margin_bottom = 6.0 -texture = ExtResource( 26 ) -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="LastFrame" type="Button" parent="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer/AnimationButtons/PlaybackButtons" groups=[ -"UIButtons", -]] -margin_left = 120.0 -margin_top = 2.0 -margin_right = 140.0 -margin_bottom = 22.0 -rect_min_size = Vector2( 20, 0 ) -hint_tooltip = "LASTFRAME_HT" -focus_mode = 0 -mouse_default_cursor_shape = 2 -size_flags_vertical = 4 -shortcut_in_tooltip = false -shortcut = SubResource( 14 ) - -[node name="TextureRect" type="TextureRect" parent="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer/AnimationButtons/PlaybackButtons/LastFrame"] -anchor_left = 0.5 -anchor_top = 0.5 -anchor_right = 0.5 -anchor_bottom = 0.5 -margin_left = -5.5 -margin_top = -6.0 -margin_right = 5.5 -margin_bottom = 6.0 -texture = ExtResource( 25 ) -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="LoopButtons" type="HBoxContainer" parent="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer/AnimationButtons"] -margin_left = 360.0 -margin_right = 498.0 -margin_bottom = 24.0 - -[node name="OnionSkinningSettings" type="Button" parent="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer/AnimationButtons/LoopButtons" groups=[ -"UIButtons", -]] -margin_top = 2.0 -margin_right = 12.0 -margin_bottom = 22.0 -hint_tooltip = "Onion Skinning settings" -focus_mode = 0 -mouse_default_cursor_shape = 2 -size_flags_horizontal = 0 -size_flags_vertical = 4 - -[node name="TextureRect" type="TextureRect" parent="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer/AnimationButtons/LoopButtons/OnionSkinningSettings"] -anchor_left = 0.5 -anchor_top = 0.5 -anchor_right = 0.5 -anchor_bottom = 0.5 -margin_left = -3.0 -margin_top = -6.0 -margin_right = 3.0 -margin_bottom = 6.0 -size_flags_horizontal = 0 -size_flags_vertical = 0 -texture = ExtResource( 30 ) -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="OnionSkinning" type="Button" parent="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer/AnimationButtons/LoopButtons" groups=[ -"UIButtons", -]] -margin_left = 16.0 -margin_top = 2.0 -margin_right = 36.0 -margin_bottom = 22.0 -rect_min_size = Vector2( 20, 0 ) -hint_tooltip = "Enable/disable Onion Skinning" -focus_mode = 0 -mouse_default_cursor_shape = 2 -size_flags_vertical = 4 - -[node name="TextureRect" type="TextureRect" parent="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer/AnimationButtons/LoopButtons/OnionSkinning"] -anchor_left = 0.5 -anchor_top = 0.5 -anchor_right = 0.5 -anchor_bottom = 0.5 -margin_left = -7.0 -margin_top = -7.0 -margin_right = 7.0 -margin_bottom = 7.0 -size_flags_horizontal = 0 -size_flags_vertical = 0 -texture = ExtResource( 29 ) -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="LoopAnim" type="Button" parent="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer/AnimationButtons/LoopButtons" groups=[ -"UIButtons", -]] -margin_left = 40.0 -margin_top = 2.0 -margin_right = 60.0 -margin_bottom = 22.0 -rect_min_size = Vector2( 20, 0 ) -hint_tooltip = "Cycle loop" -focus_mode = 0 -mouse_default_cursor_shape = 2 -size_flags_vertical = 4 - -[node name="TextureRect" type="TextureRect" parent="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer/AnimationButtons/LoopButtons/LoopAnim"] -anchor_left = 0.5 -anchor_top = 0.5 -anchor_right = 0.5 -anchor_bottom = 0.5 -margin_left = -7.0 -margin_top = -7.0 -margin_right = 7.0 -margin_bottom = 7.0 -texture = ExtResource( 31 ) -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="FPSValue" type="SpinBox" parent="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer/AnimationButtons/LoopButtons"] -margin_left = 64.0 -margin_right = 138.0 -margin_bottom = 24.0 -hint_tooltip = "How many frames per second should the animation preview be? -The more FPS, the faster the animation plays." -mouse_default_cursor_shape = 2 -size_flags_vertical = 4 -min_value = 0.1 -step = 0.1 -value = 6.0 -align = 1 -suffix = "FPS" [node name="OpacityAndTagContainer" type="HBoxContainer" parent="AnimationContainer/TimelineContainer"] margin_top = 50.0 @@ -849,7 +318,7 @@ margin_right = 902.0 margin_bottom = 32.0 rect_min_size = Vector2( 0, 32 ) size_flags_horizontal = 3 -theme = SubResource( 20 ) +theme = SubResource( 8 ) scroll_vertical_enabled = false [node name="TagContainer" type="Control" parent="AnimationContainer/TimelineContainer/OpacityAndTagContainer/TagScroll"] @@ -923,60 +392,6 @@ margin_bottom = 20.0 [node name="AnimationTimer" type="Timer" parent="."] -[node name="OnionSkinningSettings" type="WindowDialog" parent="."] -rect_min_size = Vector2( 220, 126 ) -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="OnionSkinningButtons" type="VBoxContainer" parent="OnionSkinningSettings"] -anchor_top = 0.5 -anchor_right = 1.0 -anchor_bottom = 0.5 -margin_left = 4.0 -margin_top = -58.0 -margin_right = -4.0 -margin_bottom = 58.0 -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="OnionSkinningPast" type="Label" parent="OnionSkinningSettings/OnionSkinningButtons"] -margin_right = 212.0 -margin_bottom = 14.0 -text = "Past Frames" - -[node name="PastOnionSkinning" type="SpinBox" parent="OnionSkinningSettings/OnionSkinningButtons"] -margin_top = 18.0 -margin_right = 212.0 -margin_bottom = 42.0 -mouse_default_cursor_shape = 2 -min_value = 1.0 -value = 1.0 -align = 1 - -[node name="OnionSkinningFuture" type="Label" parent="OnionSkinningSettings/OnionSkinningButtons"] -margin_top = 46.0 -margin_right = 212.0 -margin_bottom = 60.0 -text = "Future Frames" - -[node name="FutureOnionSkinning" type="SpinBox" parent="OnionSkinningSettings/OnionSkinningButtons"] -margin_top = 64.0 -margin_right = 212.0 -margin_bottom = 88.0 -mouse_default_cursor_shape = 2 -min_value = 1.0 -value = 1.0 -align = 1 - -[node name="BlueRedMode" type="CheckBox" parent="OnionSkinningSettings/OnionSkinningButtons"] -margin_top = 92.0 -margin_right = 212.0 -margin_bottom = 116.0 -mouse_default_cursor_shape = 2 -text = "Blue-Red Mode" - [node name="FrameTagDialog" parent="." instance=ExtResource( 42 )] [node name="FakeVSplitContainerGrabber" type="TextureRect" parent="."] @@ -997,26 +412,6 @@ __meta__ = { [connection signal="pressed" from="AnimationContainer/TimelineContainer/TimelineButtons/LayerButtonPanelContainer/LayerButtons/MoveDownLayer" to="." method="change_layer_order" binds= [ -1 ]] [connection signal="pressed" from="AnimationContainer/TimelineContainer/TimelineButtons/LayerButtonPanelContainer/LayerButtons/CloneLayer" to="." method="add_layer" binds= [ false ]] [connection signal="pressed" from="AnimationContainer/TimelineContainer/TimelineButtons/LayerButtonPanelContainer/LayerButtons/MergeDownLayer" to="." method="_on_MergeDownLayer_pressed"] -[connection signal="pressed" from="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer/AnimationButtons/FrameButtons/AddFrame" to="." method="add_frame"] -[connection signal="pressed" from="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer/AnimationButtons/FrameButtons/DeleteFrame" to="." method="_on_DeleteFrame_pressed"] -[connection signal="pressed" from="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer/AnimationButtons/FrameButtons/CopyFrame" to="." method="_on_CopyFrame_pressed"] -[connection signal="pressed" from="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer/AnimationButtons/FrameButtons/FrameTagButton" to="." method="_on_FrameTagButton_pressed"] -[connection signal="pressed" from="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer/AnimationButtons/FrameButtons/MoveLeft" to="." method="_on_MoveLeft_pressed"] -[connection signal="pressed" from="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer/AnimationButtons/FrameButtons/MoveRight" to="." method="_on_MoveRight_pressed"] -[connection signal="pressed" from="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer/AnimationButtons/PlaybackButtons/FirstFrame" to="." method="_on_FirstFrame_pressed"] -[connection signal="pressed" from="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer/AnimationButtons/PlaybackButtons/PreviousFrame" to="." method="_on_PreviousFrame_pressed"] -[connection signal="toggled" from="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer/AnimationButtons/PlaybackButtons/PlayBackwards" to="." method="_on_PlayBackwards_toggled"] -[connection signal="toggled" from="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer/AnimationButtons/PlaybackButtons/PlayForward" to="." method="_on_PlayForward_toggled"] -[connection signal="pressed" from="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer/AnimationButtons/PlaybackButtons/NextFrame" to="." method="_on_NextFrame_pressed"] -[connection signal="pressed" from="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer/AnimationButtons/PlaybackButtons/LastFrame" to="." method="_on_LastFrame_pressed"] -[connection signal="pressed" from="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer/AnimationButtons/LoopButtons/OnionSkinningSettings" to="." method="_on_OnionSkinningSettings_pressed"] -[connection signal="pressed" from="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer/AnimationButtons/LoopButtons/OnionSkinning" to="." method="_on_OnionSkinning_pressed"] -[connection signal="pressed" from="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer/AnimationButtons/LoopButtons/LoopAnim" to="." method="_on_LoopAnim_pressed"] -[connection signal="value_changed" from="AnimationContainer/TimelineContainer/TimelineButtons/PanelContainer/AnimationButtons/LoopButtons/FPSValue" to="." method="_on_FPSValue_value_changed"] [connection signal="value_changed" from="AnimationContainer/TimelineContainer/OpacityAndTagContainer/OpacityContainer/OpacitySlider" to="." method="_on_OpacitySlider_value_changed"] [connection signal="value_changed" from="AnimationContainer/TimelineContainer/OpacityAndTagContainer/OpacityContainer/OpacitySpinBox" to="." method="_on_OpacitySlider_value_changed"] [connection signal="timeout" from="AnimationTimer" to="." method="_on_AnimationTimer_timeout"] -[connection signal="popup_hide" from="OnionSkinningSettings" to="." method="_on_OnionSkinningSettings_popup_hide"] -[connection signal="value_changed" from="OnionSkinningSettings/OnionSkinningButtons/PastOnionSkinning" to="." method="_on_PastOnionSkinning_value_changed"] -[connection signal="value_changed" from="OnionSkinningSettings/OnionSkinningButtons/FutureOnionSkinning" to="." method="_on_FutureOnionSkinning_value_changed"] -[connection signal="toggled" from="OnionSkinningSettings/OnionSkinningButtons/BlueRedMode" to="." method="_on_BlueRedMode_toggled"]