From 3191e3f8c89d2c2cd88a74ffb914b10894157a55 Mon Sep 17 00:00:00 2001 From: CheetoHead Date: Tue, 17 Dec 2019 19:49:20 -0500 Subject: [PATCH 1/7] Add new palette updates 1 --- Scripts/Global.gd | 2 +- Scripts/Main.gd | 11 ++++++++++- Scripts/PaletteContainer.gd | 11 +++++++++++ Themes & Styles/Main Theme.tres | 11 +++++++++++ project.godot | 2 +- 5 files changed, 34 insertions(+), 3 deletions(-) diff --git a/Scripts/Global.gd b/Scripts/Global.gd index d62aadceb..48082c508 100644 --- a/Scripts/Global.gd +++ b/Scripts/Global.gd @@ -182,7 +182,7 @@ var move_up_layer_button : BaseButton var move_down_layer_button : BaseButton var merge_down_layer_button : BaseButton -var add_palette_button : TextureButton +var add_palette_button : MenuButton var remove_palette_button : TextureButton var palette_option_button : OptionButton var edit_palette_button : BaseButton diff --git a/Scripts/Main.gd b/Scripts/Main.gd index 444ba90c8..56ce1ac60 100644 --- a/Scripts/Main.gd +++ b/Scripts/Main.gd @@ -101,6 +101,7 @@ func _ready() -> void: var edit_menu : PopupMenu = Global.edit_menu.get_popup() view_menu = Global.view_menu.get_popup() var help_menu : PopupMenu = Global.help_menu.get_popup() + var add_palette_menu : PopupMenu = Global.add_palette_button.get_popup() var i = 0 for item in file_menu_items.keys(): @@ -125,6 +126,7 @@ func _ready() -> void: edit_menu.connect("id_pressed", self, "edit_menu_id_pressed") view_menu.connect("id_pressed", self, "view_menu_id_pressed") help_menu.connect("id_pressed", self, "help_menu_id_pressed") + add_palette_menu.connect("id_pressed", self, "add_palette_menu_id_pressed") var root = get_tree().get_root() #Node, left mouse shortcut, right mouse shortcut @@ -1066,7 +1068,14 @@ func _on_RemovePalette_pressed() -> void: Global.palette_container.remove_current_palette() pass +func add_palette_menu_id_pressed(id) -> void: + match id: + 0: # New Empty Palette + Global.palette_container.on_new_empty_palette() + 1: # Import Palette + Global.palette_container.on_import_palette() + pass + func _on_NewPaletteDialog_confirmed() -> void: Global.palette_container.on_new_palette_confirmed() pass - diff --git a/Scripts/PaletteContainer.gd b/Scripts/PaletteContainer.gd index ef75a2597..80997fd98 100644 --- a/Scripts/PaletteContainer.gd +++ b/Scripts/PaletteContainer.gd @@ -34,6 +34,16 @@ func on_palette_select(palette_name : String) -> void: current_palette = "Default" _display_palette(Global.palettes["Default"]) +func on_new_empty_palette() -> void: + Global.new_palette_dialog.window_title = "Create a new empty palette?" + Global.new_palette_name_line_edit.text = "Custom_Palette" + from_palette = {} + Global.new_palette_dialog.popup_centered() + pass + +func on_import_palette() -> void: + pass + func on_edit_palette() -> void: var palette : Dictionary = Global.palettes[current_palette] @@ -44,6 +54,7 @@ func on_edit_palette() -> void: if create_new_palette: from_palette = Global.palettes[current_palette] + Global.new_palette_dialog.window_title = "Create a new custom palette from existing default?" Global.new_palette_name_line_edit.text = "Custom_" + current_palette Global.new_palette_dialog.popup_centered() else: diff --git a/Themes & Styles/Main Theme.tres b/Themes & Styles/Main Theme.tres index c9cffbb92..22229508c 100644 --- a/Themes & Styles/Main Theme.tres +++ b/Themes & Styles/Main Theme.tres @@ -148,6 +148,17 @@ LineEdit/icons/clear = null LineEdit/styles/focus = null LineEdit/styles/normal = SubResource( 8 ) LineEdit/styles/read_only = null +MenuButton/colors/font_color = Color( 0.878431, 0.878431, 0.878431, 1 ) +MenuButton/colors/font_color_disabled = Color( 1, 1, 1, 0.3 ) +MenuButton/colors/font_color_hover = Color( 0.941176, 0.941176, 0.941176, 1 ) +MenuButton/colors/font_color_pressed = Color( 1, 1, 1, 1 ) +MenuButton/constants/hseparation = 3 +MenuButton/fonts/font = null +MenuButton/styles/disabled = null +MenuButton/styles/focus = null +MenuButton/styles/hover = null +MenuButton/styles/normal = null +MenuButton/styles/pressed = null TabContainer/colors/font_color_bg = Color( 0.690196, 0.690196, 0.690196, 1 ) TabContainer/colors/font_color_disabled = Color( 0.9, 0.9, 0.9, 0.2 ) TabContainer/colors/font_color_fg = Color( 0.941176, 0.941176, 0.941176, 1 ) diff --git a/project.godot b/project.godot index 86a73f30a..d9dd9391f 100644 --- a/project.godot +++ b/project.godot @@ -33,11 +33,11 @@ _global_script_class_icons={ [application] config/name="Pixelorama" -config/description="A free & open-source 2D sprite editor" run/main_scene="res://Main.tscn" boot_splash/image="res://splash.png" boot_splash/bg_color=Color( 0.145098, 0.145098, 0.164706, 1 ) config/icon="res://icon.png" +config/description="A free & open-source 2D sprite editor" config/Version="v0.5" [autoload] From b08452034d491b68bff57c94806a29f21cbd1c78 Mon Sep 17 00:00:00 2001 From: CheetoHead Date: Tue, 17 Dec 2019 20:04:37 -0500 Subject: [PATCH 2/7] Add new empty palette working --- Main.tscn | 396 +++++++++++----------------------- Prefabs/EditPalettePopup.tscn | 119 ++++++++++ Prefabs/NewPaletteDialog.tscn | 25 +++ 3 files changed, 268 insertions(+), 272 deletions(-) create mode 100644 Prefabs/EditPalettePopup.tscn create mode 100644 Prefabs/NewPaletteDialog.tscn diff --git a/Main.tscn b/Main.tscn index 475675f4d..ac67824db 100644 --- a/Main.tscn +++ b/Main.tscn @@ -1,6 +1,6 @@ -[gd_scene load_steps=75 format=2] +[gd_scene load_steps=63 format=2] -[ext_resource path="res://Themes & Styles/Dark Theme.tres" type="Theme" id=1] +[ext_resource path="res://Themes & Styles/Main Theme.tres" type="Theme" id=1] [ext_resource path="res://Scripts/Main.gd" type="Script" id=2] [ext_resource path="res://Assets/Graphics/Tools/RectSelect.png" type="Texture" id=3] [ext_resource path="res://Assets/Graphics/Tools/ColorPicker.png" type="Texture" id=4] @@ -11,7 +11,7 @@ [ext_resource path="res://Assets/Graphics/Color switch.png" type="Texture" id=9] [ext_resource path="res://Assets/Graphics/Color defaults.png" type="Texture" id=10] [ext_resource path="res://Assets/Graphics/Brush_button.png" type="Texture" id=11] -[ext_resource path="res://Themes & Styles/DarkRulerStyle.tres" type="StyleBox" id=12] +[ext_resource path="res://Themes & Styles/RulerStyle.tres" type="StyleBox" id=12] [ext_resource path="res://Scripts/HorizontalRuler.gd" type="Script" id=13] [ext_resource path="res://Scripts/VerticalRuler.gd" type="Script" id=14] [ext_resource path="res://Prefabs/Canvas.tscn" type="PackedScene" id=15] @@ -19,47 +19,35 @@ [ext_resource path="res://Scripts/SelectionRectangle.gd" type="Script" id=17] [ext_resource path="res://Scripts/SecondViewport.gd" type="Script" id=18] [ext_resource path="res://Assets/Graphics/Timeline/Go_To_First_Frame.png" type="Texture" id=19] -[ext_resource path="res://Assets/Graphics/Timeline/Go_To_First_Frame_Hover.png" type="Texture" id=20] -[ext_resource path="res://Assets/Graphics/Timeline/Previous_Frame.png" type="Texture" id=21] -[ext_resource path="res://Assets/Graphics/Timeline/Previous_Frame_Hover.png" type="Texture" id=22] -[ext_resource path="res://Assets/Graphics/Timeline/Play Backwards.png" type="Texture" id=23] -[ext_resource path="res://Assets/Graphics/Timeline/Pause.png" type="Texture" id=24] -[ext_resource path="res://Assets/Graphics/Timeline/Play Backwards_Hover.png" type="Texture" id=25] -[ext_resource path="res://Assets/Graphics/Timeline/Play.png" type="Texture" id=26] -[ext_resource path="res://Assets/Graphics/Timeline/Play_Hover.png" type="Texture" id=27] -[ext_resource path="res://Assets/Graphics/Timeline/Next_Frame.png" type="Texture" id=28] -[ext_resource path="res://Assets/Graphics/Timeline/Next_Frame_hover.png" type="Texture" id=29] -[ext_resource path="res://Assets/Graphics/Timeline/Go_To_Last_Frame.png" type="Texture" id=30] -[ext_resource path="res://Assets/Graphics/Timeline/Go_To_Last_Frame_Hover.png" type="Texture" id=31] -[ext_resource path="res://Assets/Graphics/Timeline/Loop_None.png" type="Texture" id=32] -[ext_resource path="res://Scripts/TimelineSeconds.gd" type="Script" id=33] -[ext_resource path="res://Assets/Graphics/Timeline/New_Frame.png" type="Texture" id=34] -[ext_resource path="res://Assets/Graphics/Timeline/New_Frame_Hover.png" type="Texture" id=35] -[ext_resource path="res://Assets/Graphics/Layers/new_layer.png" type="Texture" id=36] -[ext_resource path="res://Assets/Graphics/Layers/new_layer_hover.png" type="Texture" id=37] -[ext_resource path="res://Assets/Graphics/Layers/delete_layer.png" type="Texture" id=38] -[ext_resource path="res://Assets/Graphics/Layers/delete_layer_hover.png" type="Texture" id=39] -[ext_resource path="res://Assets/Graphics/Layers/delete_layer_disabled.png" type="Texture" id=40] -[ext_resource path="res://Assets/Graphics/Layers/move_up.png" type="Texture" id=41] -[ext_resource path="res://Assets/Graphics/Layers/move_up_hover.png" type="Texture" id=42] -[ext_resource path="res://Assets/Graphics/Layers/move_up_disabled.png" type="Texture" id=43] -[ext_resource path="res://Assets/Graphics/Layers/move_down.png" type="Texture" id=44] -[ext_resource path="res://Assets/Graphics/Layers/move_down_hover.png" type="Texture" id=45] -[ext_resource path="res://Assets/Graphics/Layers/move_down_disabled.png" type="Texture" id=46] -[ext_resource path="res://Assets/Graphics/Layers/clone_layer.png" type="Texture" id=47] -[ext_resource path="res://Assets/Graphics/Layers/clone_layer_hover.png" type="Texture" id=48] -[ext_resource path="res://Assets/Graphics/Layers/merge_down.png" type="Texture" id=49] -[ext_resource path="res://Assets/Graphics/Layers/merge_down_hover.png" type="Texture" id=50] -[ext_resource path="res://Assets/Graphics/Layers/merge_down_disabled.png" type="Texture" id=51] -[ext_resource path="res://Scripts/PaletteContainer.gd" type="Script" id=52] -[ext_resource path="res://Prefabs/BrushButton.tscn" type="PackedScene" id=53] -[ext_resource path="res://Assets/Graphics/Canvas_split.png" type="Texture" id=54] -[ext_resource path="res://Assets/Graphics/Canvas_unsplit.png" type="Texture" id=55] -[ext_resource path="res://Scripts/AboutDialog.gd" type="Script" id=56] -[ext_resource path="res://Scripts/EditPalettePopup.gd" type="Script" id=57] +[ext_resource path="res://Assets/Graphics/Timeline/Previous_Frame.png" type="Texture" id=20] +[ext_resource path="res://Assets/Graphics/Timeline/Play Backwards.png" type="Texture" id=21] +[ext_resource path="res://Assets/Graphics/Timeline/Pause.png" type="Texture" id=22] +[ext_resource path="res://Assets/Graphics/Timeline/Play.png" type="Texture" id=23] +[ext_resource path="res://Assets/Graphics/Timeline/Next_Frame.png" type="Texture" id=24] +[ext_resource path="res://Assets/Graphics/Timeline/Go_To_Last_Frame.png" type="Texture" id=25] +[ext_resource path="res://Assets/Graphics/Timeline/Loop_None.png" type="Texture" id=26] +[ext_resource path="res://Scripts/TimelineSeconds.gd" type="Script" id=27] +[ext_resource path="res://Assets/Graphics/Timeline/New_Frame.png" type="Texture" id=28] +[ext_resource path="res://Assets/Graphics/Layers/new_layer.png" type="Texture" id=29] +[ext_resource path="res://Assets/Graphics/Layers/delete_layer.png" type="Texture" id=30] +[ext_resource path="res://Assets/Graphics/Layers/delete_layer_disabled.png" type="Texture" id=31] +[ext_resource path="res://Assets/Graphics/Layers/move_up.png" type="Texture" id=32] +[ext_resource path="res://Assets/Graphics/Layers/move_up_disabled.png" type="Texture" id=33] +[ext_resource path="res://Assets/Graphics/Layers/move_down.png" type="Texture" id=34] +[ext_resource path="res://Assets/Graphics/Layers/move_down_disabled.png" type="Texture" id=35] +[ext_resource path="res://Assets/Graphics/Layers/clone_layer.png" type="Texture" id=36] +[ext_resource path="res://Assets/Graphics/Layers/merge_down.png" type="Texture" id=37] +[ext_resource path="res://Assets/Graphics/Layers/merge_down_disabled.png" type="Texture" id=38] +[ext_resource path="res://Scripts/PaletteContainer.gd" type="Script" id=39] +[ext_resource path="res://Prefabs/BrushButton.tscn" type="PackedScene" id=40] +[ext_resource path="res://Assets/Graphics/Canvas_split.png" type="Texture" id=41] +[ext_resource path="res://Assets/Graphics/Canvas_unsplit.png" type="Texture" id=42] +[ext_resource path="res://Scripts/AboutDialog.gd" type="Script" id=43] +[ext_resource path="res://Prefabs/EditPalettePopup.tscn" type="PackedScene" id=44] +[ext_resource path="res://Prefabs/NewPaletteDialog.tscn" type="PackedScene" id=45] [sub_resource type="StyleBoxFlat" id=1] -bg_color = Color( 0.0823529, 0.0823529, 0.0823529, 1 ) +bg_color = Color( 0.223529, 0.223529, 0.243137, 1 ) [sub_resource type="Image" id=18] data = { @@ -158,31 +146,31 @@ margin_top = 4.0 margin_right = 1010.0 [node name="FileMenu" type="MenuButton" parent="MenuAndUI/MenuContainer/MenuItems"] -margin_right = 27.0 +margin_right = 31.0 margin_bottom = 23.0 mouse_default_cursor_shape = 2 text = "File" switch_on_hover = true [node name="EditMenu" type="MenuButton" parent="MenuAndUI/MenuContainer/MenuItems"] -margin_left = 31.0 -margin_right = 60.0 +margin_left = 35.0 +margin_right = 68.0 margin_bottom = 23.0 mouse_default_cursor_shape = 2 text = "Edit" switch_on_hover = true [node name="ViewMenu" type="MenuButton" parent="MenuAndUI/MenuContainer/MenuItems"] -margin_left = 64.0 -margin_right = 98.0 +margin_left = 72.0 +margin_right = 110.0 margin_bottom = 23.0 mouse_default_cursor_shape = 2 text = "View" switch_on_hover = true [node name="HelpMenu" type="MenuButton" parent="MenuAndUI/MenuContainer/MenuItems"] -margin_left = 102.0 -margin_right = 135.0 +margin_left = 114.0 +margin_right = 151.0 margin_bottom = 23.0 mouse_default_cursor_shape = 2 text = "Help" @@ -350,6 +338,7 @@ button_mask = 3 texture_normal = ExtResource( 8 ) [node name="ColorAndToolOptions" type="VBoxContainer" parent="MenuAndUI/UI/ToolPanel/Tools"] +editor/display_folded = true margin_top = 159.0 margin_right = 208.0 margin_bottom = 612.0 @@ -421,6 +410,7 @@ margin_right = 208.0 margin_bottom = 103.0 [node name="LeftToolOptions" type="VBoxContainer" parent="MenuAndUI/UI/ToolPanel/Tools/ColorAndToolOptions"] +editor/display_folded = true margin_top = 111.0 margin_right = 208.0 margin_bottom = 242.0 @@ -470,6 +460,7 @@ margin_bottom = 23.0 text = "Brush: Pixel" [node name="LeftBrushSize" type="HBoxContainer" parent="MenuAndUI/UI/ToolPanel/Tools/ColorAndToolOptions/LeftToolOptions"] +editor/display_folded = true margin_top = 75.0 margin_right = 208.0 margin_bottom = 92.0 @@ -482,12 +473,11 @@ text = "Brush size:" [node name="LeftBrushSizeEdit" type="SpinBox" parent="MenuAndUI/UI/ToolPanel/Tools/ColorAndToolOptions/LeftToolOptions/LeftBrushSize"] margin_left = 62.0 -margin_right = 116.0 +margin_right = 126.0 margin_bottom = 17.0 mouse_default_cursor_shape = 2 min_value = 1.0 value = 1.0 -align = 1 suffix = "px" [node name="LeftColorInterpolation" type="HBoxContainer" parent="MenuAndUI/UI/ToolPanel/Tools/ColorAndToolOptions/LeftToolOptions"] @@ -600,6 +590,7 @@ margin_right = 208.0 margin_bottom = 254.0 [node name="RightToolOptions" type="VBoxContainer" parent="MenuAndUI/UI/ToolPanel/Tools/ColorAndToolOptions"] +editor/display_folded = true margin_top = 262.0 margin_right = 208.0 margin_bottom = 393.0 @@ -648,6 +639,7 @@ margin_bottom = 23.0 text = "Brush: Pixel" [node name="RightBrushSize" type="HBoxContainer" parent="MenuAndUI/UI/ToolPanel/Tools/ColorAndToolOptions/RightToolOptions"] +editor/display_folded = true margin_top = 75.0 margin_right = 208.0 margin_bottom = 92.0 @@ -660,12 +652,11 @@ text = "Brush size:" [node name="RightBrushSizeEdit" type="SpinBox" parent="MenuAndUI/UI/ToolPanel/Tools/ColorAndToolOptions/RightToolOptions/RightBrushSize"] margin_left = 62.0 -margin_right = 116.0 +margin_right = 126.0 margin_bottom = 17.0 mouse_default_cursor_shape = 2 min_value = 1.0 value = 1.0 -align = 1 suffix = "px" [node name="RightColorInterpolation" type="HBoxContainer" parent="MenuAndUI/UI/ToolPanel/Tools/ColorAndToolOptions/RightToolOptions"] @@ -774,6 +765,7 @@ mouse_default_cursor_shape = 2 text = "Vertical" [node name="CanvasAndTimeline" type="VBoxContainer" parent="MenuAndUI/UI"] +editor/display_folded = true margin_left = 224.0 margin_right = 928.0 margin_bottom = 620.0 @@ -884,6 +876,7 @@ zoom = Vector2( 0.15, 0.15 ) script = ExtResource( 16 ) [node name="AnimationTimeline" type="Panel" parent="MenuAndUI/UI/CanvasAndTimeline"] +editor/display_folded = true margin_top = 478.0 margin_right = 704.0 margin_bottom = 620.0 @@ -915,14 +908,15 @@ rect_min_size = Vector2( 0, 24 ) [node name="CurrentFrame" type="Label" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/TimelineContainer/AnimationButtons"] margin_top = 4.0 -margin_right = 242.0 +margin_right = 237.0 margin_bottom = 19.0 size_flags_horizontal = 3 text = "Current frame: 1/1" [node name="PlaybackButtons" type="HBoxContainer" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/TimelineContainer/AnimationButtons"] -margin_left = 246.0 -margin_right = 386.0 +editor/display_folded = true +margin_left = 241.0 +margin_right = 381.0 margin_bottom = 24.0 size_flags_horizontal = 2 @@ -934,7 +928,6 @@ mouse_default_cursor_shape = 2 shortcut_in_tooltip = false shortcut = SubResource( 7 ) texture_normal = ExtResource( 19 ) -texture_hover = ExtResource( 20 ) [node name="PreviousFrame" type="TextureButton" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/TimelineContainer/AnimationButtons/PlaybackButtons"] margin_left = 24.0 @@ -944,8 +937,7 @@ hint_tooltip = "PREVIOUSFRAME_HT" mouse_default_cursor_shape = 2 shortcut_in_tooltip = false shortcut = SubResource( 9 ) -texture_normal = ExtResource( 21 ) -texture_hover = ExtResource( 22 ) +texture_normal = ExtResource( 20 ) [node name="PlayBackwards" type="TextureButton" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/TimelineContainer/AnimationButtons/PlaybackButtons"] margin_left = 48.0 @@ -956,9 +948,8 @@ mouse_default_cursor_shape = 2 toggle_mode = true shortcut_in_tooltip = false shortcut = SubResource( 11 ) -texture_normal = ExtResource( 23 ) -texture_pressed = ExtResource( 24 ) -texture_hover = ExtResource( 25 ) +texture_normal = ExtResource( 21 ) +texture_pressed = ExtResource( 22 ) [node name="PlayForward" type="TextureButton" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/TimelineContainer/AnimationButtons/PlaybackButtons"] margin_left = 72.0 @@ -970,9 +961,8 @@ size_flags_horizontal = 0 toggle_mode = true shortcut_in_tooltip = false shortcut = SubResource( 13 ) -texture_normal = ExtResource( 26 ) -texture_pressed = ExtResource( 24 ) -texture_hover = ExtResource( 27 ) +texture_normal = ExtResource( 23 ) +texture_pressed = ExtResource( 22 ) [node name="NextFrame" type="TextureButton" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/TimelineContainer/AnimationButtons/PlaybackButtons"] margin_left = 96.0 @@ -982,8 +972,7 @@ hint_tooltip = "NEXTFRAME_HT" mouse_default_cursor_shape = 2 shortcut_in_tooltip = false shortcut = SubResource( 15 ) -texture_normal = ExtResource( 28 ) -texture_hover = ExtResource( 29 ) +texture_normal = ExtResource( 24 ) [node name="LastFrame" type="TextureButton" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/TimelineContainer/AnimationButtons/PlaybackButtons"] margin_left = 120.0 @@ -993,33 +982,31 @@ hint_tooltip = "LASTFRAME_HT" mouse_default_cursor_shape = 2 shortcut_in_tooltip = false shortcut = SubResource( 17 ) -texture_normal = ExtResource( 30 ) -texture_hover = ExtResource( 31 ) +texture_normal = ExtResource( 25 ) [node name="LoopButtons" type="HBoxContainer" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/TimelineContainer/AnimationButtons"] -margin_left = 492.0 +margin_left = 482.0 margin_right = 570.0 margin_bottom = 24.0 size_flags_horizontal = 0 [node name="FPSValue" type="SpinBox" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/TimelineContainer/AnimationButtons/LoopButtons"] -margin_right = 54.0 +margin_right = 64.0 margin_bottom = 24.0 hint_tooltip = "FPS_HT" mouse_default_cursor_shape = 2 min_value = 0.1 step = 0.1 value = 6.0 -align = 1 suffix = "FPS" [node name="LoopAnim" type="TextureButton" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/TimelineContainer/AnimationButtons/LoopButtons"] -margin_left = 58.0 -margin_right = 78.0 +margin_left = 68.0 +margin_right = 88.0 margin_bottom = 24.0 hint_tooltip = "No loop" mouse_default_cursor_shape = 2 -texture_normal = ExtResource( 32 ) +texture_normal = ExtResource( 26 ) [node name="HSeparator" type="HSeparator" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/TimelineContainer"] margin_top = 28.0 @@ -1031,7 +1018,7 @@ margin_top = 36.0 margin_right = 570.0 margin_bottom = 52.0 rect_min_size = Vector2( 0, 16 ) -script = ExtResource( 33 ) +script = ExtResource( 27 ) [node name="HSeparator2" type="HSeparator" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/TimelineContainer"] margin_top = 56.0 @@ -1039,6 +1026,7 @@ margin_right = 570.0 margin_bottom = 60.0 [node name="FrameAndButtonContainer" type="HBoxContainer" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/TimelineContainer"] +editor/display_folded = true margin_top = 64.0 margin_right = 570.0 margin_bottom = 84.0 @@ -1049,8 +1037,7 @@ margin_bottom = 20.0 hint_tooltip = "Add a new frame" mouse_default_cursor_shape = 2 size_flags_horizontal = 0 -texture_normal = ExtResource( 34 ) -texture_hover = ExtResource( 35 ) +texture_normal = ExtResource( 28 ) [node name="ScrollContainer" type="ScrollContainer" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/TimelineContainer/FrameAndButtonContainer"] margin_left = 24.0 @@ -1068,6 +1055,7 @@ margin_right = 578.0 margin_bottom = 138.0 [node name="OnionSkinningButtons" type="VBoxContainer" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer"] +editor/display_folded = true margin_left = 582.0 margin_right = 681.0 margin_bottom = 138.0 @@ -1088,7 +1076,6 @@ margin_top = 38.0 margin_right = 99.0 margin_bottom = 55.0 mouse_default_cursor_shape = 2 -align = 1 [node name="OnionSkinningFuture" type="Label" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/OnionSkinningButtons"] margin_top = 59.0 @@ -1101,7 +1088,6 @@ margin_top = 78.0 margin_right = 99.0 margin_bottom = 95.0 mouse_default_cursor_shape = 2 -align = 1 [node name="BlueRedMode" type="CheckBox" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/OnionSkinningButtons"] margin_top = 99.0 @@ -1165,6 +1151,7 @@ margin_right = 224.0 margin_bottom = 199.0 [node name="LayerVBoxContainer" type="VBoxContainer" parent="MenuAndUI/UI/LayerPanel/LayersAndMisc"] +editor/display_folded = true margin_top = 203.0 margin_right = 224.0 margin_bottom = 384.0 @@ -1185,8 +1172,7 @@ margin_right = 32.0 margin_bottom = 32.0 hint_tooltip = "LAYERNEW_HT" mouse_default_cursor_shape = 2 -texture_normal = ExtResource( 36 ) -texture_hover = ExtResource( 37 ) +texture_normal = ExtResource( 29 ) [node name="RemoveLayerButton" type="TextureButton" parent="MenuAndUI/UI/LayerPanel/LayersAndMisc/LayerVBoxContainer/CenterLayerButtons/LayerButtons"] margin_left = 36.0 @@ -1195,9 +1181,8 @@ margin_bottom = 32.0 hint_tooltip = "LAYERREMOVE_HT" mouse_default_cursor_shape = 8 disabled = true -texture_normal = ExtResource( 38 ) -texture_hover = ExtResource( 39 ) -texture_disabled = ExtResource( 40 ) +texture_normal = ExtResource( 30 ) +texture_disabled = ExtResource( 31 ) [node name="MoveUpLayer" type="TextureButton" parent="MenuAndUI/UI/LayerPanel/LayersAndMisc/LayerVBoxContainer/CenterLayerButtons/LayerButtons"] margin_left = 72.0 @@ -1206,9 +1191,8 @@ margin_bottom = 32.0 hint_tooltip = "LAYERUP_HT" mouse_default_cursor_shape = 8 disabled = true -texture_normal = ExtResource( 41 ) -texture_hover = ExtResource( 42 ) -texture_disabled = ExtResource( 43 ) +texture_normal = ExtResource( 32 ) +texture_disabled = ExtResource( 33 ) [node name="MoveDownLayer" type="TextureButton" parent="MenuAndUI/UI/LayerPanel/LayersAndMisc/LayerVBoxContainer/CenterLayerButtons/LayerButtons"] margin_left = 108.0 @@ -1217,9 +1201,8 @@ margin_bottom = 32.0 hint_tooltip = "LAYERDOWN_HT" mouse_default_cursor_shape = 8 disabled = true -texture_normal = ExtResource( 44 ) -texture_hover = ExtResource( 45 ) -texture_disabled = ExtResource( 46 ) +texture_normal = ExtResource( 34 ) +texture_disabled = ExtResource( 35 ) [node name="CloneLayer" type="TextureButton" parent="MenuAndUI/UI/LayerPanel/LayersAndMisc/LayerVBoxContainer/CenterLayerButtons/LayerButtons"] margin_left = 144.0 @@ -1227,8 +1210,7 @@ margin_right = 176.0 margin_bottom = 32.0 hint_tooltip = "LAYERCLONE_HT" mouse_default_cursor_shape = 2 -texture_normal = ExtResource( 47 ) -texture_hover = ExtResource( 48 ) +texture_normal = ExtResource( 36 ) [node name="MergeDownLayer" type="TextureButton" parent="MenuAndUI/UI/LayerPanel/LayersAndMisc/LayerVBoxContainer/CenterLayerButtons/LayerButtons"] margin_left = 180.0 @@ -1237,9 +1219,8 @@ margin_bottom = 32.0 hint_tooltip = "LAYERMERGE_HT" mouse_default_cursor_shape = 8 disabled = true -texture_normal = ExtResource( 49 ) -texture_hover = ExtResource( 50 ) -texture_disabled = ExtResource( 51 ) +texture_normal = ExtResource( 37 ) +texture_disabled = ExtResource( 38 ) [node name="ScrollLayers" type="ScrollContainer" parent="MenuAndUI/UI/LayerPanel/LayersAndMisc/LayerVBoxContainer"] editor/display_folded = true @@ -1284,28 +1265,34 @@ margin_right = 224.0 margin_bottom = 32.0 size_flags_horizontal = 3 -[node name="AddPalette" type="TextureButton" parent="MenuAndUI/UI/LayerPanel/LayersAndMisc/PaletteVBoxContainer/PaletteButtons"] +[node name="AddPalette" type="MenuButton" parent="MenuAndUI/UI/LayerPanel/LayersAndMisc/PaletteVBoxContainer/PaletteButtons"] margin_right = 32.0 margin_bottom = 32.0 -texture_normal = ExtResource( 36 ) +rect_min_size = Vector2( 32, 32 ) +items = [ "New Empty Palette", null, 0, false, false, 0, 0, null, "", false, "Import Palette", null, 0, false, false, 1, 0, null, "", false ] + +[node name="TextureRect" type="TextureRect" parent="MenuAndUI/UI/LayerPanel/LayersAndMisc/PaletteVBoxContainer/PaletteButtons/AddPalette"] +margin_right = 32.0 +margin_bottom = 32.0 +texture = ExtResource( 29 ) [node name="RemovePalette" type="TextureButton" parent="MenuAndUI/UI/LayerPanel/LayersAndMisc/PaletteVBoxContainer/PaletteButtons"] margin_left = 36.0 margin_right = 68.0 margin_bottom = 32.0 -texture_normal = ExtResource( 38 ) -texture_disabled = ExtResource( 40 ) +texture_normal = ExtResource( 30 ) +texture_disabled = ExtResource( 31 ) [node name="PaletteOptionButton" type="OptionButton" parent="MenuAndUI/UI/LayerPanel/LayersAndMisc/PaletteVBoxContainer/PaletteButtons"] margin_left = 72.0 -margin_right = 191.0 +margin_right = 187.0 margin_bottom = 32.0 grow_horizontal = 0 size_flags_horizontal = 3 clip_text = true [node name="EditPalette" type="Button" parent="MenuAndUI/UI/LayerPanel/LayersAndMisc/PaletteVBoxContainer/PaletteButtons"] -margin_left = 195.0 +margin_left = 191.0 margin_right = 224.0 margin_bottom = 32.0 text = "Edit" @@ -1321,7 +1308,7 @@ size_flags_vertical = 3 margin_right = 224.0 size_flags_horizontal = 3 columns = 8 -script = ExtResource( 52 ) +script = ExtResource( 39 ) [node name="BrushesPopup" type="Popup" parent="."] editor/display_folded = true @@ -1347,7 +1334,7 @@ scroll_horizontal_enabled = false [node name="FileBrushContainer" type="GridContainer" parent="BrushesPopup/TabContainer/File"] columns = 5 -[node name="PixelBrushButton" parent="BrushesPopup/TabContainer/File/FileBrushContainer" instance=ExtResource( 53 )] +[node name="PixelBrushButton" parent="BrushesPopup/TabContainer/File/FileBrushContainer" instance=ExtResource( 40 )] hint_tooltip = "Pixel brush" [node name="Project" type="ScrollContainer" parent="BrushesPopup/TabContainer"] @@ -1376,8 +1363,8 @@ hint_tooltip = "SPLITSCREEN_HT" mouse_default_cursor_shape = 2 size_flags_vertical = 0 toggle_mode = true -texture_normal = ExtResource( 54 ) -texture_pressed = ExtResource( 55 ) +texture_normal = ExtResource( 41 ) +texture_pressed = ExtResource( 42 ) [node name="CreateNewImage" type="ConfirmationDialog" parent="."] editor/display_folded = true @@ -1398,51 +1385,51 @@ text = "Image Size" [node name="OptionsContainer" type="GridContainer" parent="CreateNewImage/VBoxContainer"] margin_top = 19.0 margin_right = 184.0 -margin_bottom = 76.0 +margin_bottom = 90.0 columns = 2 [node name="WidthLabel" type="Label" parent="CreateNewImage/VBoxContainer/OptionsContainer"] -margin_top = 1.0 +margin_top = 5.0 margin_right = 75.0 -margin_bottom = 16.0 +margin_bottom = 20.0 text = "Width:" [node name="WidthValue" type="SpinBox" parent="CreateNewImage/VBoxContainer/OptionsContainer"] margin_left = 75.0 margin_right = 139.0 -margin_bottom = 17.0 +margin_bottom = 25.0 min_value = 1.0 max_value = 16384.0 value = 64.0 suffix = "px" [node name="Height" type="Label" parent="CreateNewImage/VBoxContainer/OptionsContainer"] -margin_top = 19.0 +margin_top = 30.0 margin_right = 75.0 -margin_bottom = 33.0 +margin_bottom = 45.0 text = "Height:" [node name="HeightValue" type="SpinBox" parent="CreateNewImage/VBoxContainer/OptionsContainer"] margin_left = 75.0 -margin_top = 19.0 +margin_top = 25.0 margin_right = 139.0 -margin_bottom = 34.0 +margin_bottom = 50.0 min_value = 1.0 max_value = 16384.0 value = 64.0 suffix = "px" [node name="FillColorLabel" type="Label" parent="CreateNewImage/VBoxContainer/OptionsContainer"] -margin_top = 41.0 +margin_top = 53.0 margin_right = 75.0 -margin_bottom = 53.0 +margin_bottom = 68.0 text = "Fill with color:" [node name="FillColor" type="ColorPickerButton" parent="CreateNewImage/VBoxContainer/OptionsContainer"] margin_left = 75.0 -margin_top = 38.0 +margin_top = 50.0 margin_right = 139.0 -margin_bottom = 57.0 +margin_bottom = 71.0 rect_min_size = Vector2( 64, 20 ) color = Color( 0, 0, 0, 0 ) @@ -1454,8 +1441,8 @@ resizable = true mode = 0 access = 2 filters = PoolStringArray( "*.pxo ; Pixelorama Project" ) -current_dir = "C:/Users/Overloaded/Dropbox/Orama Founding Members/εταιρικα αρχεια/Godot Projects/Pixelorama" -current_path = "C:/Users/Overloaded/Dropbox/Orama Founding Members/εταιρικα αρχεια/Godot Projects/Pixelorama/" +current_dir = "D:/GitHub/Pixelorama" +current_path = "D:/GitHub/Pixelorama/" [node name="SaveSprite" type="FileDialog" parent="."] anchor_left = 0.5 @@ -1470,8 +1457,8 @@ window_title = "Save Sprite as .pxo" resizable = true access = 2 filters = PoolStringArray( "*.pxo ; Pixelorama Project" ) -current_dir = "C:/Users/Overloaded/Dropbox/Orama Founding Members/εταιρικα αρχεια/Godot Projects/Pixelorama" -current_path = "C:/Users/Overloaded/Dropbox/Orama Founding Members/εταιρικα αρχεια/Godot Projects/Pixelorama/" +current_dir = "D:/GitHub/Pixelorama" +current_path = "D:/GitHub/Pixelorama/" [node name="ImportSprites" type="FileDialog" parent="."] margin_right = 515.0 @@ -1481,8 +1468,8 @@ resizable = true mode = 1 access = 2 filters = PoolStringArray( "*.bmp ; BMP Image", "*.hdr ; Radiance HDR Image", "*.jpg,*.jpeg ; JPEG Image", "*.png ; PNG Image", "*.svg ; SVG Image", "*.tga ; TGA Image", "*.webp ; WebP Image" ) -current_dir = "C:/Users/Overloaded/Dropbox/Orama Founding Members/εταιρικα αρχεια/Godot Projects/Pixelorama" -current_path = "C:/Users/Overloaded/Dropbox/Orama Founding Members/εταιρικα αρχεια/Godot Projects/Pixelorama/" +current_dir = "D:/GitHub/Pixelorama" +current_path = "D:/GitHub/Pixelorama/" [node name="ExportSprites" type="FileDialog" parent="."] anchor_left = 0.5 @@ -1497,8 +1484,8 @@ window_title = "Export Sprite" resizable = true access = 2 filters = PoolStringArray( "*.png ; PNG Image" ) -current_dir = "C:/Users/Overloaded/Dropbox/Orama Founding Members/εταιρικα αρχεια/Godot Projects/Pixelorama" -current_path = "C:/Users/Overloaded/Dropbox/Orama Founding Members/εταιρικα αρχεια/Godot Projects/Pixelorama/" +current_dir = "D:/GitHub/Pixelorama" +current_path = "D:/GitHub/Pixelorama/" [node name="ScaleImage" type="ConfirmationDialog" parent="."] editor/display_folded = true @@ -1570,6 +1557,7 @@ items = [ "Nearest", null, false, 0, null, "Bilinear", null, false, 1, null, "Cu selected = 0 [node name="PreferencesDialog" type="AcceptDialog" parent="."] +editor/display_folded = true margin_right = 200.0 margin_bottom = 70.0 window_title = "Preferences" @@ -1596,7 +1584,7 @@ text = "Language:" [node name="LanguageOption" type="OptionButton" parent="PreferencesDialog/VBoxContainer/OptionsContainer"] margin_left = 57.0 -margin_right = 176.0 +margin_right = 180.0 margin_bottom = 23.0 text = "System Language" items = [ "System Language", null, false, 0, null, "Deutsch [de]", null, false, 1, null, "Ελληνικά [el]", null, false, 2, null, "English [en]", null, false, 3, null, "Français [fr]", null, false, 4, null, "Polski [pl]", null, false, 5, null, "Русский [ru]", null, false, 6, null, "繁體中文 [zh_TW]", null, false, 7, null ] @@ -1630,14 +1618,14 @@ value = 1.0 suffix = "px" [node name="Height" type="Label" parent="PreferencesDialog/VBoxContainer/GridOptions"] -margin_top = 19.0 +margin_top = 18.0 margin_right = 39.0 margin_bottom = 33.0 text = "Height:" [node name="GridHeightValue" type="SpinBox" parent="PreferencesDialog/VBoxContainer/GridOptions"] margin_left = 39.0 -margin_top = 19.0 +margin_top = 17.0 margin_right = 103.0 margin_bottom = 34.0 min_value = 1.0 @@ -1646,14 +1634,14 @@ value = 1.0 suffix = "px" [node name="GridColorLabel" type="Label" parent="PreferencesDialog/VBoxContainer/GridOptions"] -margin_top = 42.0 +margin_top = 38.0 margin_right = 39.0 margin_bottom = 53.0 text = "Color:" [node name="GridColor" type="ColorPickerButton" parent="PreferencesDialog/VBoxContainer/GridOptions"] margin_left = 39.0 -margin_top = 38.0 +margin_top = 34.0 margin_right = 103.0 margin_bottom = 57.0 rect_min_size = Vector2( 64, 20 ) @@ -1663,7 +1651,7 @@ editor/display_folded = true margin_right = 284.0 margin_bottom = 186.0 window_title = "About Pixelorama" -script = ExtResource( 56 ) +script = ExtResource( 43 ) [node name="AboutUI" type="VBoxContainer" parent="AboutDialog"] margin_left = 8.0 @@ -1693,8 +1681,8 @@ margin_bottom = 77.0 [node name="LinkButtons" type="HBoxContainer" parent="AboutDialog/AboutUI/Links"] editor/display_folded = true -margin_left = 43.0 -margin_right = 225.0 +margin_left = 37.0 +margin_right = 231.0 margin_bottom = 23.0 [node name="Website" type="Button" parent="AboutDialog/AboutUI/Links/LinkButtons"] @@ -1734,138 +1722,9 @@ margin_bottom = 60.0 window_title = "Error!" dialog_text = "This is an error message!" -[node name="EditPalettePopup" type="WindowDialog" parent="."] -editor/display_folded = true -margin_right = 600.0 -margin_bottom = 550.0 -rect_min_size = Vector2( 600, 550 ) -window_title = "Edit Palette" -script = ExtResource( 57 ) +[node name="EditPalettePopup" parent="." instance=ExtResource( 44 )] -[node name="VBoxContainer" type="VBoxContainer" parent="EditPalettePopup"] -anchor_right = 1.0 -anchor_bottom = 1.0 -margin_left = 10.0 -margin_top = 10.0 -margin_right = -10.0 -margin_bottom = -10.0 -size_flags_horizontal = 3 - -[node name="HBoxContainer" type="HBoxContainer" parent="EditPalettePopup/VBoxContainer"] -margin_right = 580.0 -margin_bottom = 482.0 -size_flags_vertical = 3 - -[node name="EditPaletteColorPicker" type="ColorPicker" parent="EditPalettePopup/VBoxContainer/HBoxContainer"] -margin_left = 4.0 -margin_top = 4.0 -margin_right = 4.0 -margin_bottom = 4.0 - -[node name="Panel" type="Panel" parent="EditPalettePopup/VBoxContainer/HBoxContainer"] -margin_left = 294.0 -margin_right = 540.0 -margin_bottom = 482.0 -size_flags_horizontal = 3 - -[node name="EditPaletteGridContainer" type="GridContainer" parent="EditPalettePopup/VBoxContainer/HBoxContainer/Panel"] -anchor_right = 1.0 -anchor_bottom = 1.0 -size_flags_horizontal = 3 -size_flags_vertical = 3 -columns = 8 - -[node name="VBoxContainer" type="VBoxContainer" parent="EditPalettePopup/VBoxContainer/HBoxContainer"] -margin_left = 544.0 -margin_right = 580.0 -margin_bottom = 482.0 - -[node name="AddSwatchButton" type="TextureButton" parent="EditPalettePopup/VBoxContainer/HBoxContainer/VBoxContainer"] -margin_right = 36.0 -margin_bottom = 36.0 -texture_normal = ExtResource( 34 ) - -[node name="RemoveSwatchButton" type="TextureButton" parent="EditPalettePopup/VBoxContainer/HBoxContainer/VBoxContainer"] -margin_top = 40.0 -margin_right = 36.0 -margin_bottom = 72.0 -texture_normal = ExtResource( 38 ) - -[node name="HBoxContainer3" type="HBoxContainer" parent="EditPalettePopup/VBoxContainer"] -margin_top = 486.0 -margin_right = 580.0 -margin_bottom = 503.0 - -[node name="Label" type="Label" parent="EditPalettePopup/VBoxContainer/HBoxContainer3"] -margin_top = 1.0 -margin_right = 68.0 -margin_bottom = 16.0 -text = "Color Name:" - -[node name="EditPaletteColorNameLineEdit" type="LineEdit" parent="EditPalettePopup/VBoxContainer/HBoxContainer3"] -margin_left = 72.0 -margin_right = 580.0 -margin_bottom = 17.0 -size_flags_horizontal = 3 - -[node name="HBoxContainer2" type="HBoxContainer" parent="EditPalettePopup/VBoxContainer"] -margin_top = 507.0 -margin_right = 580.0 -margin_bottom = 530.0 -size_flags_horizontal = 3 - -[node name="SpacerControl" type="Control" parent="EditPalettePopup/VBoxContainer/HBoxContainer2"] -margin_right = 159.0 -margin_bottom = 23.0 -size_flags_horizontal = 3 - -[node name="EditPaletteSaveButton" type="Button" parent="EditPalettePopup/VBoxContainer/HBoxContainer2"] -margin_left = 163.0 -margin_right = 201.0 -margin_bottom = 23.0 -text = "Save" - -[node name="SpacerControl2" type="Control" parent="EditPalettePopup/VBoxContainer/HBoxContainer2"] -margin_left = 205.0 -margin_right = 364.0 -margin_bottom = 23.0 -size_flags_horizontal = 3 - -[node name="EditPaletteCancelButton" type="Button" parent="EditPalettePopup/VBoxContainer/HBoxContainer2"] -margin_left = 368.0 -margin_right = 417.0 -margin_bottom = 23.0 -text = "Cancel" - -[node name="SpacerControl3" type="Control" parent="EditPalettePopup/VBoxContainer/HBoxContainer2"] -margin_left = 421.0 -margin_right = 580.0 -margin_bottom = 23.0 -size_flags_horizontal = 3 - -[node name="NewPaletteDialog" type="ConfirmationDialog" parent="."] -margin_right = 200.0 -margin_bottom = 70.0 -window_title = "Create a new custom palette from existing default?" - -[node name="HBoxContainer2" type="HBoxContainer" parent="NewPaletteDialog"] -margin_left = 8.0 -margin_top = 8.0 -margin_right = 315.0 -margin_bottom = 31.0 - -[node name="Label" type="Label" parent="NewPaletteDialog/HBoxContainer2"] -margin_top = 4.0 -margin_right = 77.0 -margin_bottom = 19.0 -text = "Palette Name:" - -[node name="NewPaletteNameLineEdit" type="LineEdit" parent="NewPaletteDialog/HBoxContainer2"] -margin_left = 81.0 -margin_right = 307.0 -margin_bottom = 23.0 -size_flags_horizontal = 3 -expand_to_text_length = true +[node name="NewPaletteDialog" parent="." instance=ExtResource( 45 )] [node name="AnimationTimer" type="Timer" parent="."] @@ -1924,7 +1783,6 @@ visible = false [connection signal="pressed" from="MenuAndUI/UI/LayerPanel/LayersAndMisc/LayerVBoxContainer/CenterLayerButtons/LayerButtons/MoveDownLayer" to="." method="change_layer_order" binds= [ -1 ]] [connection signal="pressed" from="MenuAndUI/UI/LayerPanel/LayersAndMisc/LayerVBoxContainer/CenterLayerButtons/LayerButtons/CloneLayer" to="." method="add_layer" binds= [ false ]] [connection signal="pressed" from="MenuAndUI/UI/LayerPanel/LayersAndMisc/LayerVBoxContainer/CenterLayerButtons/LayerButtons/MergeDownLayer" to="." method="_on_MergeLayer_pressed"] -[connection signal="pressed" from="MenuAndUI/UI/LayerPanel/LayersAndMisc/PaletteVBoxContainer/PaletteButtons/AddPalette" to="." method="_on_AddPalette_pressed"] [connection signal="pressed" from="MenuAndUI/UI/LayerPanel/LayersAndMisc/PaletteVBoxContainer/PaletteButtons/RemovePalette" to="." method="_on_RemovePalette_pressed"] [connection signal="item_selected" from="MenuAndUI/UI/LayerPanel/LayersAndMisc/PaletteVBoxContainer/PaletteButtons/PaletteOptionButton" to="." method="_on_PaletteOptionButton_item_selected"] [connection signal="pressed" from="MenuAndUI/UI/LayerPanel/LayersAndMisc/PaletteVBoxContainer/PaletteButtons/EditPalette" to="." method="_on_EditPalette_pressed"] @@ -1952,11 +1810,5 @@ visible = false [connection signal="pressed" from="AboutDialog/AboutUI/Links/LinkButtons/Donate" to="AboutDialog" method="_on_Donate_pressed"] [connection signal="confirmed" from="QuitDialog" to="." method="_on_QuitDialog_confirmed"] [connection signal="popup_hide" from="QuitDialog" to="." method="_can_draw_true"] -[connection signal="color_changed" from="EditPalettePopup/VBoxContainer/HBoxContainer/EditPaletteColorPicker" to="EditPalettePopup" method="_on_EditPaletteColorPicker_color_changed"] -[connection signal="pressed" from="EditPalettePopup/VBoxContainer/HBoxContainer/VBoxContainer/AddSwatchButton" to="EditPalettePopup" method="_on_AddSwatchButton_pressed"] -[connection signal="pressed" from="EditPalettePopup/VBoxContainer/HBoxContainer/VBoxContainer/RemoveSwatchButton" to="EditPalettePopup" method="_on_RemoveSwatchButton_pressed"] -[connection signal="text_changed" from="EditPalettePopup/VBoxContainer/HBoxContainer3/EditPaletteColorNameLineEdit" to="EditPalettePopup" method="_on_EditPaletteColorNameLineEdit_text_changed"] -[connection signal="pressed" from="EditPalettePopup/VBoxContainer/HBoxContainer2/EditPaletteSaveButton" to="EditPalettePopup" method="_on_EditPaletteSaveButton_pressed"] -[connection signal="pressed" from="EditPalettePopup/VBoxContainer/HBoxContainer2/EditPaletteCancelButton" to="EditPalettePopup" method="_on_EditPaletteCancelButton_pressed"] [connection signal="confirmed" from="NewPaletteDialog" to="." method="_on_NewPaletteDialog_confirmed"] [connection signal="timeout" from="AnimationTimer" to="." method="_on_AnimationTimer_timeout"] diff --git a/Prefabs/EditPalettePopup.tscn b/Prefabs/EditPalettePopup.tscn new file mode 100644 index 000000000..fe7fc70d7 --- /dev/null +++ b/Prefabs/EditPalettePopup.tscn @@ -0,0 +1,119 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://Scripts/EditPalettePopup.gd" type="Script" id=1] +[ext_resource path="res://Assets/Graphics/Timeline/New_Frame.png" type="Texture" id=2] +[ext_resource path="res://Assets/Graphics/Layers/delete_layer.png" type="Texture" id=3] + +[node name="EditPalettePopup" type="WindowDialog"] +margin_right = 600.0 +margin_bottom = 550.0 +rect_min_size = Vector2( 600, 550 ) +window_title = "Edit Palette" +script = ExtResource( 1 ) + +[node name="VBoxContainer" type="VBoxContainer" parent="."] +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = 10.0 +margin_top = 10.0 +margin_right = -10.0 +margin_bottom = -10.0 +size_flags_horizontal = 3 + +[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"] +margin_right = 580.0 +margin_bottom = 482.0 +size_flags_vertical = 3 + +[node name="EditPaletteColorPicker" type="ColorPicker" parent="VBoxContainer/HBoxContainer"] +margin_left = 4.0 +margin_top = 4.0 +margin_right = 4.0 +margin_bottom = 4.0 + +[node name="Panel" type="Panel" parent="VBoxContainer/HBoxContainer"] +margin_left = 294.0 +margin_right = 540.0 +margin_bottom = 482.0 +size_flags_horizontal = 3 + +[node name="EditPaletteGridContainer" type="GridContainer" parent="VBoxContainer/HBoxContainer/Panel"] +anchor_right = 1.0 +anchor_bottom = 1.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +columns = 8 + +[node name="VBoxContainer" type="VBoxContainer" parent="VBoxContainer/HBoxContainer"] +margin_left = 544.0 +margin_right = 580.0 +margin_bottom = 482.0 + +[node name="AddSwatchButton" type="TextureButton" parent="VBoxContainer/HBoxContainer/VBoxContainer"] +margin_right = 36.0 +margin_bottom = 36.0 +texture_normal = ExtResource( 2 ) + +[node name="RemoveSwatchButton" type="TextureButton" parent="VBoxContainer/HBoxContainer/VBoxContainer"] +margin_top = 40.0 +margin_right = 36.0 +margin_bottom = 72.0 +texture_normal = ExtResource( 3 ) + +[node name="HBoxContainer3" type="HBoxContainer" parent="VBoxContainer"] +margin_top = 486.0 +margin_right = 580.0 +margin_bottom = 503.0 + +[node name="Label" type="Label" parent="VBoxContainer/HBoxContainer3"] +margin_top = 1.0 +margin_right = 68.0 +margin_bottom = 16.0 +text = "Color Name:" + +[node name="EditPaletteColorNameLineEdit" type="LineEdit" parent="VBoxContainer/HBoxContainer3"] +margin_left = 72.0 +margin_right = 580.0 +margin_bottom = 17.0 +size_flags_horizontal = 3 + +[node name="HBoxContainer2" type="HBoxContainer" parent="VBoxContainer"] +margin_top = 507.0 +margin_right = 580.0 +margin_bottom = 530.0 +size_flags_horizontal = 3 + +[node name="SpacerControl" type="Control" parent="VBoxContainer/HBoxContainer2"] +margin_right = 159.0 +margin_bottom = 23.0 +size_flags_horizontal = 3 + +[node name="EditPaletteSaveButton" type="Button" parent="VBoxContainer/HBoxContainer2"] +margin_left = 163.0 +margin_right = 201.0 +margin_bottom = 23.0 +text = "Save" + +[node name="SpacerControl2" type="Control" parent="VBoxContainer/HBoxContainer2"] +margin_left = 205.0 +margin_right = 364.0 +margin_bottom = 23.0 +size_flags_horizontal = 3 + +[node name="EditPaletteCancelButton" type="Button" parent="VBoxContainer/HBoxContainer2"] +margin_left = 368.0 +margin_right = 417.0 +margin_bottom = 23.0 +text = "Cancel" + +[node name="SpacerControl3" type="Control" parent="VBoxContainer/HBoxContainer2"] +margin_left = 421.0 +margin_right = 580.0 +margin_bottom = 23.0 +size_flags_horizontal = 3 +[connection signal="color_changed" from="VBoxContainer/HBoxContainer/EditPaletteColorPicker" to="." method="_on_EditPaletteColorPicker_color_changed"] +[connection signal="pressed" from="VBoxContainer/HBoxContainer/VBoxContainer/AddSwatchButton" to="." method="_on_AddSwatchButton_pressed"] +[connection signal="pressed" from="VBoxContainer/HBoxContainer/VBoxContainer/RemoveSwatchButton" to="." method="_on_RemoveSwatchButton_pressed"] +[connection signal="text_changed" from="VBoxContainer/HBoxContainer3/EditPaletteColorNameLineEdit" to="." method="_on_EditPaletteColorNameLineEdit_text_changed"] +[connection signal="pressed" from="VBoxContainer/HBoxContainer2/EditPaletteSaveButton" to="." method="_on_EditPaletteSaveButton_pressed"] +[connection signal="pressed" from="VBoxContainer/HBoxContainer2/EditPaletteCancelButton" to="." method="_on_EditPaletteCancelButton_pressed"] diff --git a/Prefabs/NewPaletteDialog.tscn b/Prefabs/NewPaletteDialog.tscn new file mode 100644 index 000000000..f56d49835 --- /dev/null +++ b/Prefabs/NewPaletteDialog.tscn @@ -0,0 +1,25 @@ +[gd_scene format=2] + +[node name="NewPaletteDialog" type="ConfirmationDialog"] +margin_right = 200.0 +margin_bottom = 70.0 +window_title = "Create a new custom palette from existing default?" + +[node name="HBoxContainer2" type="HBoxContainer" parent="."] +margin_left = 8.0 +margin_top = 8.0 +margin_right = 365.0 +margin_bottom = 34.0 + +[node name="Label" type="Label" parent="HBoxContainer2"] +margin_top = 4.0 +margin_right = 77.0 +margin_bottom = 19.0 +text = "Palette Name:" + +[node name="NewPaletteNameLineEdit" type="LineEdit" parent="HBoxContainer2"] +margin_left = 81.0 +margin_right = 307.0 +margin_bottom = 23.0 +size_flags_horizontal = 3 +expand_to_text_length = true From 9a659609942efe07da38497a9f710cfbeda31d1c Mon Sep 17 00:00:00 2001 From: CheetoHead Date: Wed, 18 Dec 2019 09:43:11 -0500 Subject: [PATCH 3/7] Import palette file dialog added --- Assets/Graphics/Palette/new_swatch_button.png | Bin 0 -> 146 bytes .../Palette/new_swatch_button.png.import | 34 ++++++++ .../Palette/new_swatch_button_hover.png | Bin 0 -> 156 bytes .../new_swatch_button_hover.png.import | 34 ++++++++ .../Graphics/Palette/remove_swatch_button.png | Bin 0 -> 125 bytes .../Palette/remove_swatch_button.png.import | 34 ++++++++ .../Palette/remove_swatch_button_hover.png | Bin 0 -> 130 bytes .../remove_swatch_button_hover.png.import | 34 ++++++++ Main.tscn | 7 +- Prefabs/EditPalettePopup.tscn | 77 +++++++++--------- Prefabs/NewPaletteDialog.tscn | 12 +-- Prefabs/PaletteImportFileDialog.tscn | 13 +++ Scripts/EditPalettePopup.gd | 4 +- Scripts/Global.gd | 2 + Scripts/Main.gd | 4 + Scripts/PaletteContainer.gd | 34 +++++++- 16 files changed, 242 insertions(+), 47 deletions(-) create mode 100644 Assets/Graphics/Palette/new_swatch_button.png create mode 100644 Assets/Graphics/Palette/new_swatch_button.png.import create mode 100644 Assets/Graphics/Palette/new_swatch_button_hover.png create mode 100644 Assets/Graphics/Palette/new_swatch_button_hover.png.import create mode 100644 Assets/Graphics/Palette/remove_swatch_button.png create mode 100644 Assets/Graphics/Palette/remove_swatch_button.png.import create mode 100644 Assets/Graphics/Palette/remove_swatch_button_hover.png create mode 100644 Assets/Graphics/Palette/remove_swatch_button_hover.png.import create mode 100644 Prefabs/PaletteImportFileDialog.tscn diff --git a/Assets/Graphics/Palette/new_swatch_button.png b/Assets/Graphics/Palette/new_swatch_button.png new file mode 100644 index 0000000000000000000000000000000000000000..af798ea40ec91162866cc3891abcaa8b29752f47 GIT binary patch literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE;Aq^FBxh(&L5Nxn)VRG5cIG$$7xj)7zWc(c8OpUgMGm!3+gAD;2X3i3uMc9o4A0wOc^CVW-qx t(;EjK^iMgM|A0ehpM<2uifC2_h8xc%R4;|G3j-}-@O1TaS?83{1OV1{FV+A6 literal 0 HcmV?d00001 diff --git a/Assets/Graphics/Palette/new_swatch_button.png.import b/Assets/Graphics/Palette/new_swatch_button.png.import new file mode 100644 index 000000000..a1ab228fd --- /dev/null +++ b/Assets/Graphics/Palette/new_swatch_button.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/new_swatch_button.png-37e4c5ebd7346f6c29db555ec99ae1f5.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Graphics/Palette/new_swatch_button.png" +dest_files=[ "res://.import/new_swatch_button.png-37e4c5ebd7346f6c29db555ec99ae1f5.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/Assets/Graphics/Palette/new_swatch_button_hover.png b/Assets/Graphics/Palette/new_swatch_button_hover.png new file mode 100644 index 0000000000000000000000000000000000000000..7eadde1c5f130d9eb1ffcfcaca9b0e9eecf75880 GIT binary patch literal 156 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE;AvZsq?Ehe%Gtj1vuw2j8cHfYh(&L5Nxn)VRG5cIG$+>c1Vv+*)E{B{P9Zxo$xIGfB{-xr5&!z-2vo|;P@bFw&%f#?< XD!<@|2X7t&&13L%^>bP0l+XkKhN&eN literal 0 HcmV?d00001 diff --git a/Assets/Graphics/Palette/remove_swatch_button.png.import b/Assets/Graphics/Palette/remove_swatch_button.png.import new file mode 100644 index 000000000..9fb159fa3 --- /dev/null +++ b/Assets/Graphics/Palette/remove_swatch_button.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/remove_swatch_button.png-e55ca10e4a33e81efd86e89e399c8786.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Graphics/Palette/remove_swatch_button.png" +dest_files=[ "res://.import/remove_swatch_button.png-e55ca10e4a33e81efd86e89e399c8786.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/Assets/Graphics/Palette/remove_swatch_button_hover.png b/Assets/Graphics/Palette/remove_swatch_button_hover.png new file mode 100644 index 0000000000000000000000000000000000000000..e8f27d98291a09dbf0a2a9e648da8ca0bad2f781 GIT binary patch literal 130 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE;=r>Bc!h(&L5N void: pass # Replace with function body. func _on_EditPaletteColorNameLineEdit_text_changed(new_text) -> void: - if current_swatch > 0 && current_swatch < working_palette.colors.size(): + if current_swatch >= 0 && current_swatch < working_palette.colors.size(): working_palette.colors[current_swatch].name = new_text _refresh_hint_tooltip(current_swatch) pass func _on_EditPaletteColorPicker_color_changed(color) -> void: - if current_swatch > 0 && current_swatch < working_palette.colors.size(): + if current_swatch >= 0 && current_swatch < working_palette.colors.size(): palette_grid.get_child(current_swatch).get_child(0).modulate = color working_palette.colors[current_swatch].data = color.to_html(true) _refresh_hint_tooltip(current_swatch) diff --git a/Scripts/Global.gd b/Scripts/Global.gd index 06272f1b4..662622d7e 100644 --- a/Scripts/Global.gd +++ b/Scripts/Global.gd @@ -190,6 +190,7 @@ var palette_container : GridContainer var edit_palette_popup : WindowDialog var new_palette_dialog : ConfirmationDialog var new_palette_name_line_edit : LineEdit +var palette_import_file_dialog : FileDialog var error_dialog : AcceptDialog @@ -283,6 +284,7 @@ func _ready() -> void: edit_palette_popup = find_node_by_name(root, "EditPalettePopup") new_palette_dialog = find_node_by_name(root, "NewPaletteDialog") new_palette_name_line_edit = find_node_by_name(new_palette_dialog, "NewPaletteNameLineEdit") + palette_import_file_dialog = find_node_by_name(root, "PaletteImportFileDialog") error_dialog = find_node_by_name(root, "ErrorDialog") diff --git a/Scripts/Main.gd b/Scripts/Main.gd index bc42878bc..7b379a33f 100644 --- a/Scripts/Main.gd +++ b/Scripts/Main.gd @@ -1079,3 +1079,7 @@ func add_palette_menu_id_pressed(id) -> void: func _on_NewPaletteDialog_confirmed() -> void: Global.palette_container.on_new_palette_confirmed() pass + +func _on_PaletteImportFileDialog_file_selected(path) -> void: + Global.palette_container.on_palette_import_file_selected(path) + pass diff --git a/Scripts/PaletteContainer.gd b/Scripts/PaletteContainer.gd index 80997fd98..eb87a529c 100644 --- a/Scripts/PaletteContainer.gd +++ b/Scripts/PaletteContainer.gd @@ -1,6 +1,6 @@ extends GridContainer -var palette_button = preload("res://Prefabs/PaletteButton.tscn"); +const palette_button = preload("res://Prefabs/PaletteButton.tscn"); var current_palette = "Default" var from_palette : = {} @@ -42,6 +42,38 @@ func on_new_empty_palette() -> void: pass func on_import_palette() -> void: + Global.palette_import_file_dialog.popup_centered() + pass + +func on_palette_import_file_selected(path) -> void: + var file := File.new() + + file.open(path, File.READ) + var text = file.get_as_text() + var result_json = JSON.parse(text) + var result = {} + var palette_name = null # Default error condition + + if result_json.error != OK: # If parse has errors + print("Error: ", result_json.error) + print("Error Line: ", result_json.error_line) + print("Error String: ", result_json.error_string) + else: # If parse OK + var data = result_json.result + if data.has("name"): #If data is 'valid' palette file + palette_name = data.name + if not Global.palettes.has(palette_name): + Global.palettes[palette_name] = data + Global.palette_option_button.add_item(palette_name) + var index := Global.palette_option_button.get_item_count() - 1 + Global.palette_option_button.set_item_metadata(index, palette_name) + Global.palette_option_button.select(index) + on_palette_select(palette_name) + save_palette(palette_name, palette_name + ".json") + else: + Global.error_dialog.set_text("Palette named '" + palette_name + "' already exists"); + Global.error_dialog.popup_centered() + file.close() pass func on_edit_palette() -> void: From 60af6409700d148d6e00bd24b3d49d664e42b19e Mon Sep 17 00:00:00 2001 From: CheetoHead Date: Wed, 18 Dec 2019 09:55:15 -0500 Subject: [PATCH 4/7] Updates to new palette import button --- Main.tscn | 1 - Prefabs/PaletteImportFileDialog.tscn | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/Main.tscn b/Main.tscn index 98da76f61..00994fa8c 100644 --- a/Main.tscn +++ b/Main.tscn @@ -811,7 +811,6 @@ margin_right = 16.0 margin_bottom = 462.0 rect_min_size = Vector2( 16, 0 ) focus_mode = 0 -mouse_default_cursor_shape = 15 size_flags_horizontal = 0 size_flags_vertical = 3 custom_styles/hover = ExtResource( 12 ) diff --git a/Prefabs/PaletteImportFileDialog.tscn b/Prefabs/PaletteImportFileDialog.tscn index 8058cb414..d49d89e2c 100644 --- a/Prefabs/PaletteImportFileDialog.tscn +++ b/Prefabs/PaletteImportFileDialog.tscn @@ -8,6 +8,6 @@ window_title = "Open a File" resizable = true mode = 0 access = 2 -filters = PoolStringArray( "*.json ; JavaScript Object Notation", "*.gpl ; Gimp Palette Library" ) +filters = PoolStringArray( "*.json ; JavaScript Object Notation" ) current_dir = "D:/GitHub/Pixelorama" current_path = "D:/GitHub/Pixelorama/" From af67f9540acc0b0f0799de8ba140619476d6f561 Mon Sep 17 00:00:00 2001 From: Overloaded <35376950+OverloadedOrama@users.noreply.github.com> Date: Wed, 18 Dec 2019 17:52:46 +0200 Subject: [PATCH 5/7] Update project.godot --- project.godot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project.godot b/project.godot index d9dd9391f..86a73f30a 100644 --- a/project.godot +++ b/project.godot @@ -33,11 +33,11 @@ _global_script_class_icons={ [application] config/name="Pixelorama" +config/description="A free & open-source 2D sprite editor" run/main_scene="res://Main.tscn" boot_splash/image="res://splash.png" boot_splash/bg_color=Color( 0.145098, 0.145098, 0.164706, 1 ) config/icon="res://icon.png" -config/description="A free & open-source 2D sprite editor" config/Version="v0.5" [autoload] From 1b23cc25f431559046b57f31bef9f39d2571b0ee Mon Sep 17 00:00:00 2001 From: Overloaded <35376950+OverloadedOrama@users.noreply.github.com> Date: Wed, 18 Dec 2019 17:54:05 +0200 Subject: [PATCH 6/7] Merged Main.tscn with the theme changes --- Main.tscn | 273 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 153 insertions(+), 120 deletions(-) diff --git a/Main.tscn b/Main.tscn index 00994fa8c..03cfb1620 100644 --- a/Main.tscn +++ b/Main.tscn @@ -1,6 +1,6 @@ -[gd_scene load_steps=64 format=2] +[gd_scene load_steps=78 format=2] -[ext_resource path="res://Themes & Styles/Main Theme.tres" type="Theme" id=1] +[ext_resource path="res://Themes & Styles/Dark Theme.tres" type="Theme" id=1] [ext_resource path="res://Scripts/Main.gd" type="Script" id=2] [ext_resource path="res://Assets/Graphics/Tools/RectSelect.png" type="Texture" id=3] [ext_resource path="res://Assets/Graphics/Tools/ColorPicker.png" type="Texture" id=4] @@ -11,7 +11,7 @@ [ext_resource path="res://Assets/Graphics/Color switch.png" type="Texture" id=9] [ext_resource path="res://Assets/Graphics/Color defaults.png" type="Texture" id=10] [ext_resource path="res://Assets/Graphics/Brush_button.png" type="Texture" id=11] -[ext_resource path="res://Themes & Styles/RulerStyle.tres" type="StyleBox" id=12] +[ext_resource path="res://Themes & Styles/DarkRulerStyle.tres" type="StyleBox" id=12] [ext_resource path="res://Scripts/HorizontalRuler.gd" type="Script" id=13] [ext_resource path="res://Scripts/VerticalRuler.gd" type="Script" id=14] [ext_resource path="res://Prefabs/Canvas.tscn" type="PackedScene" id=15] @@ -19,38 +19,51 @@ [ext_resource path="res://Scripts/SelectionRectangle.gd" type="Script" id=17] [ext_resource path="res://Scripts/SecondViewport.gd" type="Script" id=18] [ext_resource path="res://Assets/Graphics/Timeline/Go_To_First_Frame.png" type="Texture" id=19] -[ext_resource path="res://Assets/Graphics/Timeline/Previous_Frame.png" type="Texture" id=20] -[ext_resource path="res://Assets/Graphics/Timeline/Play Backwards.png" type="Texture" id=21] -[ext_resource path="res://Assets/Graphics/Timeline/Pause.png" type="Texture" id=22] -[ext_resource path="res://Assets/Graphics/Timeline/Play.png" type="Texture" id=23] -[ext_resource path="res://Assets/Graphics/Timeline/Next_Frame.png" type="Texture" id=24] -[ext_resource path="res://Assets/Graphics/Timeline/Go_To_Last_Frame.png" type="Texture" id=25] -[ext_resource path="res://Assets/Graphics/Timeline/Loop_None.png" type="Texture" id=26] -[ext_resource path="res://Scripts/TimelineSeconds.gd" type="Script" id=27] -[ext_resource path="res://Assets/Graphics/Timeline/New_Frame.png" type="Texture" id=28] -[ext_resource path="res://Assets/Graphics/Layers/new_layer.png" type="Texture" id=29] -[ext_resource path="res://Assets/Graphics/Layers/delete_layer.png" type="Texture" id=30] -[ext_resource path="res://Assets/Graphics/Layers/delete_layer_disabled.png" type="Texture" id=31] -[ext_resource path="res://Assets/Graphics/Layers/move_up.png" type="Texture" id=32] -[ext_resource path="res://Assets/Graphics/Layers/move_up_disabled.png" type="Texture" id=33] -[ext_resource path="res://Assets/Graphics/Layers/move_down.png" type="Texture" id=34] -[ext_resource path="res://Assets/Graphics/Layers/move_down_disabled.png" type="Texture" id=35] -[ext_resource path="res://Assets/Graphics/Layers/clone_layer.png" type="Texture" id=36] -[ext_resource path="res://Assets/Graphics/Layers/merge_down.png" type="Texture" id=37] -[ext_resource path="res://Assets/Graphics/Layers/merge_down_disabled.png" type="Texture" id=38] -[ext_resource path="res://Scripts/PaletteContainer.gd" type="Script" id=39] -[ext_resource path="res://Prefabs/BrushButton.tscn" type="PackedScene" id=40] -[ext_resource path="res://Assets/Graphics/Canvas_split.png" type="Texture" id=41] -[ext_resource path="res://Assets/Graphics/Canvas_unsplit.png" type="Texture" id=42] -[ext_resource path="res://Scripts/AboutDialog.gd" type="Script" id=43] -[ext_resource path="res://Prefabs/EditPalettePopup.tscn" type="PackedScene" id=44] -[ext_resource path="res://Prefabs/NewPaletteDialog.tscn" type="PackedScene" id=45] -[ext_resource path="res://Prefabs/PaletteImportFileDialog.tscn" type="PackedScene" id=46] +[ext_resource path="res://Assets/Graphics/Timeline/Go_To_First_Frame_Hover.png" type="Texture" id=20] +[ext_resource path="res://Assets/Graphics/Timeline/Previous_Frame.png" type="Texture" id=21] +[ext_resource path="res://Assets/Graphics/Timeline/Previous_Frame_Hover.png" type="Texture" id=22] +[ext_resource path="res://Assets/Graphics/Timeline/Play Backwards.png" type="Texture" id=23] +[ext_resource path="res://Assets/Graphics/Timeline/Pause.png" type="Texture" id=24] +[ext_resource path="res://Assets/Graphics/Timeline/Play Backwards_Hover.png" type="Texture" id=25] +[ext_resource path="res://Assets/Graphics/Timeline/Play.png" type="Texture" id=26] +[ext_resource path="res://Assets/Graphics/Timeline/Play_Hover.png" type="Texture" id=27] +[ext_resource path="res://Assets/Graphics/Timeline/Next_Frame.png" type="Texture" id=28] +[ext_resource path="res://Assets/Graphics/Timeline/Next_Frame_hover.png" type="Texture" id=29] +[ext_resource path="res://Assets/Graphics/Timeline/Go_To_Last_Frame.png" type="Texture" id=30] +[ext_resource path="res://Assets/Graphics/Timeline/Go_To_Last_Frame_Hover.png" type="Texture" id=31] +[ext_resource path="res://Assets/Graphics/Timeline/Loop_None.png" type="Texture" id=32] +[ext_resource path="res://Scripts/TimelineSeconds.gd" type="Script" id=33] +[ext_resource path="res://Assets/Graphics/Timeline/New_Frame.png" type="Texture" id=34] +[ext_resource path="res://Assets/Graphics/Timeline/New_Frame_Hover.png" type="Texture" id=35] +[ext_resource path="res://Assets/Graphics/Layers/new_layer.png" type="Texture" id=36] +[ext_resource path="res://Assets/Graphics/Layers/new_layer_hover.png" type="Texture" id=37] +[ext_resource path="res://Assets/Graphics/Layers/delete_layer.png" type="Texture" id=38] +[ext_resource path="res://Assets/Graphics/Layers/delete_layer_hover.png" type="Texture" id=39] +[ext_resource path="res://Assets/Graphics/Layers/delete_layer_disabled.png" type="Texture" id=40] +[ext_resource path="res://Assets/Graphics/Layers/move_up.png" type="Texture" id=41] +[ext_resource path="res://Assets/Graphics/Layers/move_up_hover.png" type="Texture" id=42] +[ext_resource path="res://Assets/Graphics/Layers/move_up_disabled.png" type="Texture" id=43] +[ext_resource path="res://Assets/Graphics/Layers/move_down.png" type="Texture" id=44] +[ext_resource path="res://Assets/Graphics/Layers/move_down_hover.png" type="Texture" id=45] +[ext_resource path="res://Assets/Graphics/Layers/move_down_disabled.png" type="Texture" id=46] +[ext_resource path="res://Assets/Graphics/Layers/clone_layer.png" type="Texture" id=47] +[ext_resource path="res://Assets/Graphics/Layers/clone_layer_hover.png" type="Texture" id=48] +[ext_resource path="res://Assets/Graphics/Layers/merge_down.png" type="Texture" id=49] +[ext_resource path="res://Assets/Graphics/Layers/merge_down_hover.png" type="Texture" id=50] +[ext_resource path="res://Assets/Graphics/Layers/merge_down_disabled.png" type="Texture" id=51] +[ext_resource path="res://Scripts/PaletteContainer.gd" type="Script" id=52] +[ext_resource path="res://Prefabs/BrushButton.tscn" type="PackedScene" id=53] +[ext_resource path="res://Assets/Graphics/Canvas_split.png" type="Texture" id=54] +[ext_resource path="res://Assets/Graphics/Canvas_unsplit.png" type="Texture" id=55] +[ext_resource path="res://Scripts/AboutDialog.gd" type="Script" id=56] +[ext_resource path="res://Prefabs/EditPalettePopup.tscn" type="PackedScene" id=57] +[ext_resource path="res://Prefabs/NewPaletteDialog.tscn" type="PackedScene" id=58] +[ext_resource path="res://Prefabs/PaletteImportFileDialog.tscn" type="PackedScene" id=59] [sub_resource type="StyleBoxFlat" id=1] -bg_color = Color( 0.223529, 0.223529, 0.243137, 1 ) +bg_color = Color( 0.0823529, 0.0823529, 0.0823529, 1 ) -[sub_resource type="Image" id=18] +[sub_resource type="Image" id=21] data = { "data": PoolByteArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "format": "RGBA8", @@ -60,10 +73,10 @@ data = { } [sub_resource type="ImageTexture" id=3] -image = SubResource( 18 ) +image = SubResource( 21 ) size = Vector2( 32, 32 ) -[sub_resource type="Image" id=19] +[sub_resource type="Image" id=22] data = { "data": PoolByteArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "format": "RGBA8", @@ -73,7 +86,7 @@ data = { } [sub_resource type="ImageTexture" id=5] -image = SubResource( 19 ) +image = SubResource( 22 ) size = Vector2( 32, 32 ) [sub_resource type="InputEventKey" id=6] @@ -120,6 +133,9 @@ scancode = 16777230 [sub_resource type="ShortCut" id=17] shortcut = SubResource( 16 ) +[sub_resource type="StreamTexture" id=20] +load_path = "res://.import/new_layer.png-6f042042bc418daa72142f41f436a47c.stex" + [node name="Control" type="Control"] anchor_right = 1.0 anchor_bottom = 1.0 @@ -136,6 +152,7 @@ anchor_bottom = 1.0 custom_constants/separation = 0 [node name="MenuContainer" type="Panel" parent="MenuAndUI"] +editor/display_folded = true margin_right = 1152.0 margin_bottom = 28.0 rect_min_size = Vector2( 0, 28 ) @@ -147,31 +164,31 @@ margin_top = 4.0 margin_right = 1010.0 [node name="FileMenu" type="MenuButton" parent="MenuAndUI/MenuContainer/MenuItems"] -margin_right = 31.0 +margin_right = 27.0 margin_bottom = 23.0 mouse_default_cursor_shape = 2 text = "File" switch_on_hover = true [node name="EditMenu" type="MenuButton" parent="MenuAndUI/MenuContainer/MenuItems"] -margin_left = 35.0 -margin_right = 68.0 +margin_left = 31.0 +margin_right = 60.0 margin_bottom = 23.0 mouse_default_cursor_shape = 2 text = "Edit" switch_on_hover = true [node name="ViewMenu" type="MenuButton" parent="MenuAndUI/MenuContainer/MenuItems"] -margin_left = 72.0 -margin_right = 110.0 +margin_left = 64.0 +margin_right = 98.0 margin_bottom = 23.0 mouse_default_cursor_shape = 2 text = "View" switch_on_hover = true [node name="HelpMenu" type="MenuButton" parent="MenuAndUI/MenuContainer/MenuItems"] -margin_left = 114.0 -margin_right = 151.0 +margin_left = 102.0 +margin_right = 135.0 margin_bottom = 23.0 mouse_default_cursor_shape = 2 text = "Help" @@ -411,7 +428,6 @@ margin_right = 208.0 margin_bottom = 103.0 [node name="LeftToolOptions" type="VBoxContainer" parent="MenuAndUI/UI/ToolPanel/Tools/ColorAndToolOptions"] -editor/display_folded = true margin_top = 111.0 margin_right = 208.0 margin_bottom = 242.0 @@ -461,7 +477,6 @@ margin_bottom = 23.0 text = "Brush: Pixel" [node name="LeftBrushSize" type="HBoxContainer" parent="MenuAndUI/UI/ToolPanel/Tools/ColorAndToolOptions/LeftToolOptions"] -editor/display_folded = true margin_top = 75.0 margin_right = 208.0 margin_bottom = 92.0 @@ -474,11 +489,12 @@ text = "Brush size:" [node name="LeftBrushSizeEdit" type="SpinBox" parent="MenuAndUI/UI/ToolPanel/Tools/ColorAndToolOptions/LeftToolOptions/LeftBrushSize"] margin_left = 62.0 -margin_right = 126.0 +margin_right = 116.0 margin_bottom = 17.0 mouse_default_cursor_shape = 2 min_value = 1.0 value = 1.0 +align = 1 suffix = "px" [node name="LeftColorInterpolation" type="HBoxContainer" parent="MenuAndUI/UI/ToolPanel/Tools/ColorAndToolOptions/LeftToolOptions"] @@ -591,7 +607,6 @@ margin_right = 208.0 margin_bottom = 254.0 [node name="RightToolOptions" type="VBoxContainer" parent="MenuAndUI/UI/ToolPanel/Tools/ColorAndToolOptions"] -editor/display_folded = true margin_top = 262.0 margin_right = 208.0 margin_bottom = 393.0 @@ -640,7 +655,6 @@ margin_bottom = 23.0 text = "Brush: Pixel" [node name="RightBrushSize" type="HBoxContainer" parent="MenuAndUI/UI/ToolPanel/Tools/ColorAndToolOptions/RightToolOptions"] -editor/display_folded = true margin_top = 75.0 margin_right = 208.0 margin_bottom = 92.0 @@ -653,11 +667,12 @@ text = "Brush size:" [node name="RightBrushSizeEdit" type="SpinBox" parent="MenuAndUI/UI/ToolPanel/Tools/ColorAndToolOptions/RightToolOptions/RightBrushSize"] margin_left = 62.0 -margin_right = 126.0 +margin_right = 116.0 margin_bottom = 17.0 mouse_default_cursor_shape = 2 min_value = 1.0 value = 1.0 +align = 1 suffix = "px" [node name="RightColorInterpolation" type="HBoxContainer" parent="MenuAndUI/UI/ToolPanel/Tools/ColorAndToolOptions/RightToolOptions"] @@ -774,6 +789,7 @@ size_flags_horizontal = 3 custom_constants/separation = 0 [node name="HViewportContainer" type="HBoxContainer" parent="MenuAndUI/UI/CanvasAndTimeline"] +editor/display_folded = true margin_right = 704.0 margin_bottom = 478.0 size_flags_horizontal = 3 @@ -811,6 +827,7 @@ margin_right = 16.0 margin_bottom = 462.0 rect_min_size = Vector2( 16, 0 ) focus_mode = 0 +mouse_default_cursor_shape = 15 size_flags_horizontal = 0 size_flags_vertical = 3 custom_styles/hover = ExtResource( 12 ) @@ -822,6 +839,7 @@ enabled_focus_mode = 0 script = ExtResource( 14 ) [node name="ViewportContainer" type="ViewportContainer" parent="MenuAndUI/UI/CanvasAndTimeline/HViewportContainer/ViewportAndRulers/ViewportandVerticalRuler"] +editor/display_folded = true margin_left = 16.0 margin_right = 704.0 margin_bottom = 462.0 @@ -909,15 +927,14 @@ rect_min_size = Vector2( 0, 24 ) [node name="CurrentFrame" type="Label" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/TimelineContainer/AnimationButtons"] margin_top = 4.0 -margin_right = 237.0 +margin_right = 242.0 margin_bottom = 19.0 size_flags_horizontal = 3 text = "Current frame: 1/1" [node name="PlaybackButtons" type="HBoxContainer" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/TimelineContainer/AnimationButtons"] -editor/display_folded = true -margin_left = 241.0 -margin_right = 381.0 +margin_left = 246.0 +margin_right = 386.0 margin_bottom = 24.0 size_flags_horizontal = 2 @@ -929,6 +946,7 @@ mouse_default_cursor_shape = 2 shortcut_in_tooltip = false shortcut = SubResource( 7 ) texture_normal = ExtResource( 19 ) +texture_hover = ExtResource( 20 ) [node name="PreviousFrame" type="TextureButton" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/TimelineContainer/AnimationButtons/PlaybackButtons"] margin_left = 24.0 @@ -938,7 +956,8 @@ hint_tooltip = "PREVIOUSFRAME_HT" mouse_default_cursor_shape = 2 shortcut_in_tooltip = false shortcut = SubResource( 9 ) -texture_normal = ExtResource( 20 ) +texture_normal = ExtResource( 21 ) +texture_hover = ExtResource( 22 ) [node name="PlayBackwards" type="TextureButton" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/TimelineContainer/AnimationButtons/PlaybackButtons"] margin_left = 48.0 @@ -949,8 +968,9 @@ mouse_default_cursor_shape = 2 toggle_mode = true shortcut_in_tooltip = false shortcut = SubResource( 11 ) -texture_normal = ExtResource( 21 ) -texture_pressed = ExtResource( 22 ) +texture_normal = ExtResource( 23 ) +texture_pressed = ExtResource( 24 ) +texture_hover = ExtResource( 25 ) [node name="PlayForward" type="TextureButton" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/TimelineContainer/AnimationButtons/PlaybackButtons"] margin_left = 72.0 @@ -962,8 +982,9 @@ size_flags_horizontal = 0 toggle_mode = true shortcut_in_tooltip = false shortcut = SubResource( 13 ) -texture_normal = ExtResource( 23 ) -texture_pressed = ExtResource( 22 ) +texture_normal = ExtResource( 26 ) +texture_pressed = ExtResource( 24 ) +texture_hover = ExtResource( 27 ) [node name="NextFrame" type="TextureButton" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/TimelineContainer/AnimationButtons/PlaybackButtons"] margin_left = 96.0 @@ -973,7 +994,8 @@ hint_tooltip = "NEXTFRAME_HT" mouse_default_cursor_shape = 2 shortcut_in_tooltip = false shortcut = SubResource( 15 ) -texture_normal = ExtResource( 24 ) +texture_normal = ExtResource( 28 ) +texture_hover = ExtResource( 29 ) [node name="LastFrame" type="TextureButton" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/TimelineContainer/AnimationButtons/PlaybackButtons"] margin_left = 120.0 @@ -983,31 +1005,33 @@ hint_tooltip = "LASTFRAME_HT" mouse_default_cursor_shape = 2 shortcut_in_tooltip = false shortcut = SubResource( 17 ) -texture_normal = ExtResource( 25 ) +texture_normal = ExtResource( 30 ) +texture_hover = ExtResource( 31 ) [node name="LoopButtons" type="HBoxContainer" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/TimelineContainer/AnimationButtons"] -margin_left = 482.0 +margin_left = 492.0 margin_right = 570.0 margin_bottom = 24.0 size_flags_horizontal = 0 [node name="FPSValue" type="SpinBox" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/TimelineContainer/AnimationButtons/LoopButtons"] -margin_right = 64.0 +margin_right = 54.0 margin_bottom = 24.0 hint_tooltip = "FPS_HT" mouse_default_cursor_shape = 2 min_value = 0.1 step = 0.1 value = 6.0 +align = 1 suffix = "FPS" [node name="LoopAnim" type="TextureButton" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/TimelineContainer/AnimationButtons/LoopButtons"] -margin_left = 68.0 -margin_right = 88.0 +margin_left = 58.0 +margin_right = 78.0 margin_bottom = 24.0 hint_tooltip = "No loop" mouse_default_cursor_shape = 2 -texture_normal = ExtResource( 26 ) +texture_normal = ExtResource( 32 ) [node name="HSeparator" type="HSeparator" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/TimelineContainer"] margin_top = 28.0 @@ -1019,7 +1043,7 @@ margin_top = 36.0 margin_right = 570.0 margin_bottom = 52.0 rect_min_size = Vector2( 0, 16 ) -script = ExtResource( 27 ) +script = ExtResource( 33 ) [node name="HSeparator2" type="HSeparator" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/TimelineContainer"] margin_top = 56.0 @@ -1027,7 +1051,6 @@ margin_right = 570.0 margin_bottom = 60.0 [node name="FrameAndButtonContainer" type="HBoxContainer" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/TimelineContainer"] -editor/display_folded = true margin_top = 64.0 margin_right = 570.0 margin_bottom = 84.0 @@ -1038,7 +1061,8 @@ margin_bottom = 20.0 hint_tooltip = "Add a new frame" mouse_default_cursor_shape = 2 size_flags_horizontal = 0 -texture_normal = ExtResource( 28 ) +texture_normal = ExtResource( 34 ) +texture_hover = ExtResource( 35 ) [node name="ScrollContainer" type="ScrollContainer" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/TimelineContainer/FrameAndButtonContainer"] margin_left = 24.0 @@ -1056,7 +1080,6 @@ margin_right = 578.0 margin_bottom = 138.0 [node name="OnionSkinningButtons" type="VBoxContainer" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer"] -editor/display_folded = true margin_left = 582.0 margin_right = 681.0 margin_bottom = 138.0 @@ -1077,6 +1100,7 @@ margin_top = 38.0 margin_right = 99.0 margin_bottom = 55.0 mouse_default_cursor_shape = 2 +align = 1 [node name="OnionSkinningFuture" type="Label" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/OnionSkinningButtons"] margin_top = 59.0 @@ -1089,6 +1113,7 @@ margin_top = 78.0 margin_right = 99.0 margin_bottom = 95.0 mouse_default_cursor_shape = 2 +align = 1 [node name="BlueRedMode" type="CheckBox" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/OnionSkinningButtons"] margin_top = 99.0 @@ -1173,7 +1198,8 @@ margin_right = 32.0 margin_bottom = 32.0 hint_tooltip = "LAYERNEW_HT" mouse_default_cursor_shape = 2 -texture_normal = ExtResource( 29 ) +texture_normal = ExtResource( 36 ) +texture_hover = ExtResource( 37 ) [node name="RemoveLayerButton" type="TextureButton" parent="MenuAndUI/UI/LayerPanel/LayersAndMisc/LayerVBoxContainer/CenterLayerButtons/LayerButtons"] margin_left = 36.0 @@ -1182,8 +1208,9 @@ margin_bottom = 32.0 hint_tooltip = "LAYERREMOVE_HT" mouse_default_cursor_shape = 8 disabled = true -texture_normal = ExtResource( 30 ) -texture_disabled = ExtResource( 31 ) +texture_normal = ExtResource( 38 ) +texture_hover = ExtResource( 39 ) +texture_disabled = ExtResource( 40 ) [node name="MoveUpLayer" type="TextureButton" parent="MenuAndUI/UI/LayerPanel/LayersAndMisc/LayerVBoxContainer/CenterLayerButtons/LayerButtons"] margin_left = 72.0 @@ -1192,8 +1219,9 @@ margin_bottom = 32.0 hint_tooltip = "LAYERUP_HT" mouse_default_cursor_shape = 8 disabled = true -texture_normal = ExtResource( 32 ) -texture_disabled = ExtResource( 33 ) +texture_normal = ExtResource( 41 ) +texture_hover = ExtResource( 42 ) +texture_disabled = ExtResource( 43 ) [node name="MoveDownLayer" type="TextureButton" parent="MenuAndUI/UI/LayerPanel/LayersAndMisc/LayerVBoxContainer/CenterLayerButtons/LayerButtons"] margin_left = 108.0 @@ -1202,8 +1230,9 @@ margin_bottom = 32.0 hint_tooltip = "LAYERDOWN_HT" mouse_default_cursor_shape = 8 disabled = true -texture_normal = ExtResource( 34 ) -texture_disabled = ExtResource( 35 ) +texture_normal = ExtResource( 44 ) +texture_hover = ExtResource( 45 ) +texture_disabled = ExtResource( 46 ) [node name="CloneLayer" type="TextureButton" parent="MenuAndUI/UI/LayerPanel/LayersAndMisc/LayerVBoxContainer/CenterLayerButtons/LayerButtons"] margin_left = 144.0 @@ -1211,7 +1240,8 @@ margin_right = 176.0 margin_bottom = 32.0 hint_tooltip = "LAYERCLONE_HT" mouse_default_cursor_shape = 2 -texture_normal = ExtResource( 36 ) +texture_normal = ExtResource( 47 ) +texture_hover = ExtResource( 48 ) [node name="MergeDownLayer" type="TextureButton" parent="MenuAndUI/UI/LayerPanel/LayersAndMisc/LayerVBoxContainer/CenterLayerButtons/LayerButtons"] margin_left = 180.0 @@ -1220,8 +1250,9 @@ margin_bottom = 32.0 hint_tooltip = "LAYERMERGE_HT" mouse_default_cursor_shape = 8 disabled = true -texture_normal = ExtResource( 37 ) -texture_disabled = ExtResource( 38 ) +texture_normal = ExtResource( 49 ) +texture_hover = ExtResource( 50 ) +texture_disabled = ExtResource( 51 ) [node name="ScrollLayers" type="ScrollContainer" parent="MenuAndUI/UI/LayerPanel/LayersAndMisc/LayerVBoxContainer"] editor/display_folded = true @@ -1273,27 +1304,27 @@ rect_min_size = Vector2( 32, 32 ) items = [ "New Empty Palette", null, 0, false, false, 0, 0, null, "", false, "Import Palette", null, 0, false, false, 1, 0, null, "", false ] [node name="TextureRect" type="TextureRect" parent="MenuAndUI/UI/LayerPanel/LayersAndMisc/PaletteVBoxContainer/PaletteButtons/AddPalette"] -margin_right = 32.0 -margin_bottom = 32.0 -texture = ExtResource( 29 ) +margin_right = 40.0 +margin_bottom = 40.0 +texture = SubResource( 20 ) [node name="RemovePalette" type="TextureButton" parent="MenuAndUI/UI/LayerPanel/LayersAndMisc/PaletteVBoxContainer/PaletteButtons"] margin_left = 36.0 margin_right = 68.0 margin_bottom = 32.0 -texture_normal = ExtResource( 30 ) -texture_disabled = ExtResource( 31 ) +texture_normal = ExtResource( 38 ) +texture_disabled = ExtResource( 40 ) [node name="PaletteOptionButton" type="OptionButton" parent="MenuAndUI/UI/LayerPanel/LayersAndMisc/PaletteVBoxContainer/PaletteButtons"] margin_left = 72.0 -margin_right = 187.0 +margin_right = 191.0 margin_bottom = 32.0 grow_horizontal = 0 size_flags_horizontal = 3 clip_text = true [node name="EditPalette" type="Button" parent="MenuAndUI/UI/LayerPanel/LayersAndMisc/PaletteVBoxContainer/PaletteButtons"] -margin_left = 191.0 +margin_left = 195.0 margin_right = 224.0 margin_bottom = 32.0 text = "Edit" @@ -1309,7 +1340,7 @@ size_flags_vertical = 3 margin_right = 224.0 size_flags_horizontal = 3 columns = 8 -script = ExtResource( 39 ) +script = ExtResource( 52 ) [node name="BrushesPopup" type="Popup" parent="."] editor/display_folded = true @@ -1335,7 +1366,7 @@ scroll_horizontal_enabled = false [node name="FileBrushContainer" type="GridContainer" parent="BrushesPopup/TabContainer/File"] columns = 5 -[node name="PixelBrushButton" parent="BrushesPopup/TabContainer/File/FileBrushContainer" instance=ExtResource( 40 )] +[node name="PixelBrushButton" parent="BrushesPopup/TabContainer/File/FileBrushContainer" instance=ExtResource( 53 )] hint_tooltip = "Pixel brush" [node name="Project" type="ScrollContainer" parent="BrushesPopup/TabContainer"] @@ -1364,8 +1395,8 @@ hint_tooltip = "SPLITSCREEN_HT" mouse_default_cursor_shape = 2 size_flags_vertical = 0 toggle_mode = true -texture_normal = ExtResource( 41 ) -texture_pressed = ExtResource( 42 ) +texture_normal = ExtResource( 54 ) +texture_pressed = ExtResource( 55 ) [node name="CreateNewImage" type="ConfirmationDialog" parent="."] editor/display_folded = true @@ -1386,51 +1417,51 @@ text = "Image Size" [node name="OptionsContainer" type="GridContainer" parent="CreateNewImage/VBoxContainer"] margin_top = 19.0 margin_right = 184.0 -margin_bottom = 90.0 +margin_bottom = 76.0 columns = 2 [node name="WidthLabel" type="Label" parent="CreateNewImage/VBoxContainer/OptionsContainer"] -margin_top = 5.0 +margin_top = 1.0 margin_right = 75.0 -margin_bottom = 20.0 +margin_bottom = 16.0 text = "Width:" [node name="WidthValue" type="SpinBox" parent="CreateNewImage/VBoxContainer/OptionsContainer"] margin_left = 75.0 margin_right = 139.0 -margin_bottom = 25.0 +margin_bottom = 17.0 min_value = 1.0 max_value = 16384.0 value = 64.0 suffix = "px" [node name="Height" type="Label" parent="CreateNewImage/VBoxContainer/OptionsContainer"] -margin_top = 30.0 +margin_top = 19.0 margin_right = 75.0 -margin_bottom = 45.0 +margin_bottom = 33.0 text = "Height:" [node name="HeightValue" type="SpinBox" parent="CreateNewImage/VBoxContainer/OptionsContainer"] margin_left = 75.0 -margin_top = 25.0 +margin_top = 19.0 margin_right = 139.0 -margin_bottom = 50.0 +margin_bottom = 34.0 min_value = 1.0 max_value = 16384.0 value = 64.0 suffix = "px" [node name="FillColorLabel" type="Label" parent="CreateNewImage/VBoxContainer/OptionsContainer"] -margin_top = 53.0 +margin_top = 41.0 margin_right = 75.0 -margin_bottom = 68.0 +margin_bottom = 53.0 text = "Fill with color:" [node name="FillColor" type="ColorPickerButton" parent="CreateNewImage/VBoxContainer/OptionsContainer"] margin_left = 75.0 -margin_top = 50.0 +margin_top = 38.0 margin_right = 139.0 -margin_bottom = 71.0 +margin_bottom = 57.0 rect_min_size = Vector2( 64, 20 ) color = Color( 0, 0, 0, 0 ) @@ -1442,8 +1473,8 @@ resizable = true mode = 0 access = 2 filters = PoolStringArray( "*.pxo ; Pixelorama Project" ) -current_dir = "D:/GitHub/Pixelorama" -current_path = "D:/GitHub/Pixelorama/" +current_dir = "C:/Users/Overloaded/Dropbox/Orama Founding Members/εταιρικα αρχεια/Godot Projects/Pixelorama" +current_path = "C:/Users/Overloaded/Dropbox/Orama Founding Members/εταιρικα αρχεια/Godot Projects/Pixelorama/" [node name="SaveSprite" type="FileDialog" parent="."] anchor_left = 0.5 @@ -1458,8 +1489,8 @@ window_title = "Save Sprite as .pxo" resizable = true access = 2 filters = PoolStringArray( "*.pxo ; Pixelorama Project" ) -current_dir = "D:/GitHub/Pixelorama" -current_path = "D:/GitHub/Pixelorama/" +current_dir = "C:/Users/Overloaded/Dropbox/Orama Founding Members/εταιρικα αρχεια/Godot Projects/Pixelorama" +current_path = "C:/Users/Overloaded/Dropbox/Orama Founding Members/εταιρικα αρχεια/Godot Projects/Pixelorama/" [node name="ImportSprites" type="FileDialog" parent="."] margin_right = 515.0 @@ -1469,8 +1500,8 @@ resizable = true mode = 1 access = 2 filters = PoolStringArray( "*.bmp ; BMP Image", "*.hdr ; Radiance HDR Image", "*.jpg,*.jpeg ; JPEG Image", "*.png ; PNG Image", "*.svg ; SVG Image", "*.tga ; TGA Image", "*.webp ; WebP Image" ) -current_dir = "D:/GitHub/Pixelorama" -current_path = "D:/GitHub/Pixelorama/" +current_dir = "C:/Users/Overloaded/Dropbox/Orama Founding Members/εταιρικα αρχεια/Godot Projects/Pixelorama" +current_path = "C:/Users/Overloaded/Dropbox/Orama Founding Members/εταιρικα αρχεια/Godot Projects/Pixelorama/" [node name="ExportSprites" type="FileDialog" parent="."] anchor_left = 0.5 @@ -1485,8 +1516,8 @@ window_title = "Export Sprite" resizable = true access = 2 filters = PoolStringArray( "*.png ; PNG Image" ) -current_dir = "D:/GitHub/Pixelorama" -current_path = "D:/GitHub/Pixelorama/" +current_dir = "C:/Users/Overloaded/Dropbox/Orama Founding Members/εταιρικα αρχεια/Godot Projects/Pixelorama" +current_path = "C:/Users/Overloaded/Dropbox/Orama Founding Members/εταιρικα αρχεια/Godot Projects/Pixelorama/" [node name="ScaleImage" type="ConfirmationDialog" parent="."] editor/display_folded = true @@ -1585,7 +1616,7 @@ text = "Language:" [node name="LanguageOption" type="OptionButton" parent="PreferencesDialog/VBoxContainer/OptionsContainer"] margin_left = 57.0 -margin_right = 180.0 +margin_right = 176.0 margin_bottom = 23.0 text = "System Language" items = [ "System Language", null, false, 0, null, "Deutsch [de]", null, false, 1, null, "Ελληνικά [el]", null, false, 2, null, "English [en]", null, false, 3, null, "Français [fr]", null, false, 4, null, "Polski [pl]", null, false, 5, null, "Русский [ru]", null, false, 6, null, "繁體中文 [zh_TW]", null, false, 7, null ] @@ -1619,14 +1650,14 @@ value = 1.0 suffix = "px" [node name="Height" type="Label" parent="PreferencesDialog/VBoxContainer/GridOptions"] -margin_top = 18.0 +margin_top = 19.0 margin_right = 39.0 margin_bottom = 33.0 text = "Height:" [node name="GridHeightValue" type="SpinBox" parent="PreferencesDialog/VBoxContainer/GridOptions"] margin_left = 39.0 -margin_top = 17.0 +margin_top = 19.0 margin_right = 103.0 margin_bottom = 34.0 min_value = 1.0 @@ -1635,14 +1666,14 @@ value = 1.0 suffix = "px" [node name="GridColorLabel" type="Label" parent="PreferencesDialog/VBoxContainer/GridOptions"] -margin_top = 38.0 +margin_top = 42.0 margin_right = 39.0 margin_bottom = 53.0 text = "Color:" [node name="GridColor" type="ColorPickerButton" parent="PreferencesDialog/VBoxContainer/GridOptions"] margin_left = 39.0 -margin_top = 34.0 +margin_top = 38.0 margin_right = 103.0 margin_bottom = 57.0 rect_min_size = Vector2( 64, 20 ) @@ -1652,7 +1683,7 @@ editor/display_folded = true margin_right = 284.0 margin_bottom = 186.0 window_title = "About Pixelorama" -script = ExtResource( 43 ) +script = ExtResource( 56 ) [node name="AboutUI" type="VBoxContainer" parent="AboutDialog"] margin_left = 8.0 @@ -1682,8 +1713,8 @@ margin_bottom = 77.0 [node name="LinkButtons" type="HBoxContainer" parent="AboutDialog/AboutUI/Links"] editor/display_folded = true -margin_left = 37.0 -margin_right = 231.0 +margin_left = 43.0 +margin_right = 225.0 margin_bottom = 23.0 [node name="Website" type="Button" parent="AboutDialog/AboutUI/Links/LinkButtons"] @@ -1723,12 +1754,14 @@ margin_bottom = 60.0 window_title = "Error!" dialog_text = "This is an error message!" -[node name="EditPalettePopup" parent="." instance=ExtResource( 44 )] +[node name="EditPalettePopup" parent="." instance=ExtResource( 57 )] visible = false -[node name="NewPaletteDialog" parent="." instance=ExtResource( 45 )] +[node name="NewPaletteDialog" parent="." instance=ExtResource( 58 )] -[node name="PaletteImportFileDialog" parent="." instance=ExtResource( 46 )] +[node name="PaletteImportFileDialog" parent="." instance=ExtResource( 59 )] +current_dir = "C:/Users/Overloaded/Documents/Godot Projects/Pixelorama-palette_updates" +current_path = "C:/Users/Overloaded/Documents/Godot Projects/Pixelorama-palette_updates/" [node name="AnimationTimer" type="Timer" parent="."] From 432c9690ffc0b55e5b7cff50bb5d1aa83159cd17 Mon Sep 17 00:00:00 2001 From: OverloadedOrama <35376950+OverloadedOrama@users.noreply.github.com> Date: Wed, 18 Dec 2019 18:12:44 +0200 Subject: [PATCH 7/7] PreferencesDialog is now a scene of its own We should change the organization of the project, and use multiple saved scenes instead of everything being on Main.tscn. Also restored "X" as a shortcut for color switch, because that somehow got lost. --- Main.tscn | 133 +++++++-------------------------- Prefabs/PreferencesDialog.tscn | 97 ++++++++++++++++++++++++ Scripts/Global.gd | 11 ++- Scripts/Main.gd | 62 ++++----------- Scripts/PaletteContainer.gd | 2 +- Scripts/PreferencesDialog.gd | 23 ++++++ 6 files changed, 172 insertions(+), 156 deletions(-) create mode 100644 Prefabs/PreferencesDialog.tscn create mode 100644 Scripts/PreferencesDialog.gd diff --git a/Main.tscn b/Main.tscn index 03cfb1620..641955183 100644 --- a/Main.tscn +++ b/Main.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=78 format=2] +[gd_scene load_steps=81 format=2] [ext_resource path="res://Themes & Styles/Dark Theme.tres" type="Theme" id=1] [ext_resource path="res://Scripts/Main.gd" type="Script" id=2] @@ -55,14 +55,21 @@ [ext_resource path="res://Prefabs/BrushButton.tscn" type="PackedScene" id=53] [ext_resource path="res://Assets/Graphics/Canvas_split.png" type="Texture" id=54] [ext_resource path="res://Assets/Graphics/Canvas_unsplit.png" type="Texture" id=55] -[ext_resource path="res://Scripts/AboutDialog.gd" type="Script" id=56] -[ext_resource path="res://Prefabs/EditPalettePopup.tscn" type="PackedScene" id=57] -[ext_resource path="res://Prefabs/NewPaletteDialog.tscn" type="PackedScene" id=58] -[ext_resource path="res://Prefabs/PaletteImportFileDialog.tscn" type="PackedScene" id=59] +[ext_resource path="res://Prefabs/PreferencesDialog.tscn" type="PackedScene" id=56] +[ext_resource path="res://Scripts/AboutDialog.gd" type="Script" id=57] +[ext_resource path="res://Prefabs/EditPalettePopup.tscn" type="PackedScene" id=58] +[ext_resource path="res://Prefabs/NewPaletteDialog.tscn" type="PackedScene" id=59] +[ext_resource path="res://Prefabs/PaletteImportFileDialog.tscn" type="PackedScene" id=60] [sub_resource type="StyleBoxFlat" id=1] bg_color = Color( 0.0823529, 0.0823529, 0.0823529, 1 ) +[sub_resource type="InputEventKey" id=19] +scancode = 88 + +[sub_resource type="ShortCut" id=20] +shortcut = SubResource( 19 ) + [sub_resource type="Image" id=21] data = { "data": PoolByteArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), @@ -133,7 +140,7 @@ scancode = 16777230 [sub_resource type="ShortCut" id=17] shortcut = SubResource( 16 ) -[sub_resource type="StreamTexture" id=20] +[sub_resource type="StreamTexture" id=18] load_path = "res://.import/new_layer.png-6f042042bc418daa72142f41f436a47c.stex" [node name="Control" type="Control"] @@ -220,6 +227,7 @@ text = "[64×64]" align = 2 [node name="UI" type="HBoxContainer" parent="MenuAndUI"] +editor/display_folded = true margin_top = 28.0 margin_right = 1152.0 margin_bottom = 648.0 @@ -234,6 +242,7 @@ rect_min_size = Vector2( 224, 0 ) size_flags_vertical = 3 [node name="Tools" type="VBoxContainer" parent="MenuAndUI/UI/ToolPanel"] +editor/display_folded = true anchor_right = 1.0 anchor_bottom = 1.0 margin_left = 8.0 @@ -400,6 +409,8 @@ margin_right = 17.0 margin_bottom = 7.0 hint_tooltip = "COLORSWITCH_HT" mouse_default_cursor_shape = 2 +shortcut_in_tooltip = false +shortcut = SubResource( 20 ) texture_normal = ExtResource( 9 ) [node name="ColorDefaults" type="TextureButton" parent="MenuAndUI/UI/ToolPanel/Tools/ColorAndToolOptions/ColorPickersCenter/ColorPickersHorizontal/ColorButtonsCenter/ColorButtonsVertical"] @@ -1128,6 +1139,7 @@ margin_right = 689.0 margin_bottom = 138.0 [node name="LayerPanel" type="Panel" parent="MenuAndUI/UI"] +editor/display_folded = true margin_left = 928.0 margin_right = 1152.0 margin_bottom = 620.0 @@ -1306,7 +1318,7 @@ items = [ "New Empty Palette", null, 0, false, false, 0, 0, null, "", false, "Im [node name="TextureRect" type="TextureRect" parent="MenuAndUI/UI/LayerPanel/LayersAndMisc/PaletteVBoxContainer/PaletteButtons/AddPalette"] margin_right = 40.0 margin_bottom = 40.0 -texture = SubResource( 20 ) +texture = SubResource( 18 ) [node name="RemovePalette" type="TextureButton" parent="MenuAndUI/UI/LayerPanel/LayersAndMisc/PaletteVBoxContainer/PaletteButtons"] margin_left = 36.0 @@ -1588,102 +1600,14 @@ text = "Nearest" items = [ "Nearest", null, false, 0, null, "Bilinear", null, false, 1, null, "Cubic", null, false, 2, null, "Trilinear", null, false, 3, null, "Lanczos", null, true, 4, null ] selected = 0 -[node name="PreferencesDialog" type="AcceptDialog" parent="."] -editor/display_folded = true -margin_right = 200.0 -margin_bottom = 70.0 -window_title = "Preferences" -resizable = true - -[node name="VBoxContainer" type="VBoxContainer" parent="PreferencesDialog"] -anchor_left = 0.5 -anchor_right = 0.5 -margin_left = -92.0 -margin_top = 8.0 -margin_right = 92.0 -margin_bottom = 31.0 - -[node name="OptionsContainer" type="GridContainer" parent="PreferencesDialog/VBoxContainer"] -margin_right = 184.0 -margin_bottom = 23.0 -columns = 2 - -[node name="LanguageLabel" type="Label" parent="PreferencesDialog/VBoxContainer/OptionsContainer"] -margin_top = 4.0 -margin_right = 57.0 -margin_bottom = 19.0 -text = "Language:" - -[node name="LanguageOption" type="OptionButton" parent="PreferencesDialog/VBoxContainer/OptionsContainer"] -margin_left = 57.0 -margin_right = 176.0 -margin_bottom = 23.0 -text = "System Language" -items = [ "System Language", null, false, 0, null, "Deutsch [de]", null, false, 1, null, "Ελληνικά [el]", null, false, 2, null, "English [en]", null, false, 3, null, "Français [fr]", null, false, 4, null, "Polski [pl]", null, false, 5, null, "Русский [ru]", null, false, 6, null, "繁體中文 [zh_TW]", null, false, 7, null ] -selected = 0 - -[node name="GridOptionsLabel" type="Label" parent="PreferencesDialog/VBoxContainer"] -margin_top = 27.0 -margin_right = 184.0 -margin_bottom = 42.0 -text = "Grid options" - -[node name="GridOptions" type="GridContainer" parent="PreferencesDialog/VBoxContainer"] -margin_top = 46.0 -margin_right = 184.0 -margin_bottom = 103.0 -columns = 2 - -[node name="WidthLabel" type="Label" parent="PreferencesDialog/VBoxContainer/GridOptions"] -margin_top = 1.0 -margin_right = 39.0 -margin_bottom = 16.0 -text = "Width:" - -[node name="GridWidthValue" type="SpinBox" parent="PreferencesDialog/VBoxContainer/GridOptions"] -margin_left = 39.0 -margin_right = 103.0 -margin_bottom = 17.0 -min_value = 1.0 -max_value = 16384.0 -value = 1.0 -suffix = "px" - -[node name="Height" type="Label" parent="PreferencesDialog/VBoxContainer/GridOptions"] -margin_top = 19.0 -margin_right = 39.0 -margin_bottom = 33.0 -text = "Height:" - -[node name="GridHeightValue" type="SpinBox" parent="PreferencesDialog/VBoxContainer/GridOptions"] -margin_left = 39.0 -margin_top = 19.0 -margin_right = 103.0 -margin_bottom = 34.0 -min_value = 1.0 -max_value = 16384.0 -value = 1.0 -suffix = "px" - -[node name="GridColorLabel" type="Label" parent="PreferencesDialog/VBoxContainer/GridOptions"] -margin_top = 42.0 -margin_right = 39.0 -margin_bottom = 53.0 -text = "Color:" - -[node name="GridColor" type="ColorPickerButton" parent="PreferencesDialog/VBoxContainer/GridOptions"] -margin_left = 39.0 -margin_top = 38.0 -margin_right = 103.0 -margin_bottom = 57.0 -rect_min_size = Vector2( 64, 20 ) +[node name="PreferencesDialog" parent="." instance=ExtResource( 56 )] [node name="AboutDialog" type="AcceptDialog" parent="."] editor/display_folded = true margin_right = 284.0 margin_bottom = 186.0 window_title = "About Pixelorama" -script = ExtResource( 56 ) +script = ExtResource( 57 ) [node name="AboutUI" type="VBoxContainer" parent="AboutDialog"] margin_left = 8.0 @@ -1754,14 +1678,14 @@ margin_bottom = 60.0 window_title = "Error!" dialog_text = "This is an error message!" -[node name="EditPalettePopup" parent="." instance=ExtResource( 57 )] +[node name="EditPalettePopup" parent="." instance=ExtResource( 58 )] visible = false -[node name="NewPaletteDialog" parent="." instance=ExtResource( 58 )] +[node name="NewPaletteDialog" parent="." instance=ExtResource( 59 )] -[node name="PaletteImportFileDialog" parent="." instance=ExtResource( 59 )] -current_dir = "C:/Users/Overloaded/Documents/Godot Projects/Pixelorama-palette_updates" -current_path = "C:/Users/Overloaded/Documents/Godot Projects/Pixelorama-palette_updates/" +[node name="PaletteImportFileDialog" parent="." instance=ExtResource( 60 )] +current_dir = "C:/Users/Overloaded/Dropbox/Orama Founding Members/εταιρικα αρχεια/Godot Projects/Pixelorama" +current_path = "C:/Users/Overloaded/Dropbox/Orama Founding Members/εταιρικα αρχεια/Godot Projects/Pixelorama/" [node name="AnimationTimer" type="Timer" parent="."] @@ -1836,11 +1760,6 @@ visible = false [connection signal="popup_hide" from="ExportSprites" to="." method="_can_draw_true"] [connection signal="confirmed" from="ScaleImage" to="." method="_on_ScaleImage_confirmed"] [connection signal="popup_hide" from="ScaleImage" to="." method="_can_draw_true"] -[connection signal="popup_hide" from="PreferencesDialog" to="." method="_can_draw_true"] -[connection signal="item_selected" from="PreferencesDialog/VBoxContainer/OptionsContainer/LanguageOption" to="." method="_on_LanguageOption_item_selected"] -[connection signal="value_changed" from="PreferencesDialog/VBoxContainer/GridOptions/GridWidthValue" to="." method="_on_GridWidthValue_value_changed"] -[connection signal="value_changed" from="PreferencesDialog/VBoxContainer/GridOptions/GridHeightValue" to="." method="_on_GridHeightValue_value_changed"] -[connection signal="color_changed" from="PreferencesDialog/VBoxContainer/GridOptions/GridColor" to="." method="_on_GridColor_color_changed"] [connection signal="popup_hide" from="AboutDialog" to="." method="_can_draw_true"] [connection signal="pressed" from="AboutDialog/AboutUI/Links/LinkButtons/Website" to="AboutDialog" method="_on_Website_pressed"] [connection signal="pressed" from="AboutDialog/AboutUI/Links/LinkButtons/GitHub" to="AboutDialog" method="_on_GitHub_pressed"] diff --git a/Prefabs/PreferencesDialog.tscn b/Prefabs/PreferencesDialog.tscn new file mode 100644 index 000000000..b558b919b --- /dev/null +++ b/Prefabs/PreferencesDialog.tscn @@ -0,0 +1,97 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://Scripts/PreferencesDialog.gd" type="Script" id=1] + +[node name="PreferencesDialog" type="AcceptDialog"] +margin_right = 200.0 +margin_bottom = 70.0 +window_title = "Preferences" +resizable = true +script = ExtResource( 1 ) + +[node name="VBoxContainer" type="VBoxContainer" parent="."] +anchor_left = 0.5 +anchor_right = 0.5 +margin_left = -92.0 +margin_top = 8.0 +margin_right = 92.0 +margin_bottom = 34.0 + +[node name="OptionsContainer" type="GridContainer" parent="VBoxContainer"] +margin_right = 184.0 +margin_bottom = 23.0 +columns = 2 + +[node name="LanguageLabel" type="Label" parent="VBoxContainer/OptionsContainer"] +margin_top = 4.0 +margin_right = 57.0 +margin_bottom = 19.0 +text = "Language:" + +[node name="LanguageOption" type="OptionButton" parent="VBoxContainer/OptionsContainer"] +margin_left = 57.0 +margin_right = 176.0 +margin_bottom = 23.0 +text = "System Language" +items = [ "System Language", null, false, 0, null, "Deutsch [de]", null, false, 1, null, "Ελληνικά [el]", null, false, 2, null, "English [en]", null, false, 3, null, "Français [fr]", null, false, 4, null, "Polski [pl]", null, false, 5, null, "Русский [ru]", null, false, 6, null, "繁體中文 [zh_TW]", null, false, 7, null ] +selected = 0 + +[node name="GridOptionsLabel" type="Label" parent="VBoxContainer"] +margin_top = 27.0 +margin_right = 184.0 +margin_bottom = 42.0 +text = "Grid options" + +[node name="GridOptions" type="GridContainer" parent="VBoxContainer"] +margin_top = 46.0 +margin_right = 184.0 +margin_bottom = 103.0 +columns = 2 + +[node name="WidthLabel" type="Label" parent="VBoxContainer/GridOptions"] +margin_top = 1.0 +margin_right = 39.0 +margin_bottom = 16.0 +text = "Width:" + +[node name="GridWidthValue" type="SpinBox" parent="VBoxContainer/GridOptions"] +margin_left = 39.0 +margin_right = 103.0 +margin_bottom = 17.0 +min_value = 1.0 +max_value = 16384.0 +value = 1.0 +suffix = "px" + +[node name="Height" type="Label" parent="VBoxContainer/GridOptions"] +margin_top = 19.0 +margin_right = 39.0 +margin_bottom = 33.0 +text = "Height:" + +[node name="GridHeightValue" type="SpinBox" parent="VBoxContainer/GridOptions"] +margin_left = 39.0 +margin_top = 19.0 +margin_right = 103.0 +margin_bottom = 34.0 +min_value = 1.0 +max_value = 16384.0 +value = 1.0 +suffix = "px" + +[node name="GridColorLabel" type="Label" parent="VBoxContainer/GridOptions"] +margin_top = 42.0 +margin_right = 39.0 +margin_bottom = 53.0 +text = "Color:" + +[node name="GridColor" type="ColorPickerButton" parent="VBoxContainer/GridOptions"] +margin_left = 39.0 +margin_top = 38.0 +margin_right = 103.0 +margin_bottom = 57.0 +rect_min_size = Vector2( 64, 20 ) +[connection signal="item_selected" from="VBoxContainer/OptionsContainer/LanguageOption" to="." method="_on_LanguageOption_item_selected"] +[connection signal="value_changed" from="VBoxContainer/GridOptions/GridWidthValue" to="." method="_on_GridWidthValue_value_changed"] +[connection signal="value_changed" from="VBoxContainer/GridOptions/GridHeightValue" to="." method="_on_GridHeightValue_value_changed"] +[connection signal="color_changed" from="VBoxContainer/GridOptions/GridColor" to="." method="_on_GridColor_color_changed"] diff --git a/Scripts/Global.gd b/Scripts/Global.gd index 662622d7e..b6ec3aca7 100644 --- a/Scripts/Global.gd +++ b/Scripts/Global.gd @@ -1,5 +1,8 @@ extends Node +var config_cache := ConfigFile.new() +# warning-ignore:unused_class_variable +var loaded_locales : Array var undo_redo : UndoRedo var undos := 0 #The number of times we added undo properties @@ -491,5 +494,11 @@ func blend_image_with_color(image : Image, color : Color, interpolate_factor : f return blended_image func _exit_tree() -> void: + config_cache.set_value("window", "screen", OS.current_screen) + config_cache.set_value("window", "maximized", OS.window_maximized || OS.window_fullscreen) + config_cache.set_value("window", "position", OS.window_position) + config_cache.set_value("window", "size", OS.window_size) + config_cache.save("user://cache.ini") + # Thanks to qarmin from GitHub for pointing this out - undo_redo.free() \ No newline at end of file + undo_redo.free() diff --git a/Scripts/Main.gd b/Scripts/Main.gd index 7b379a33f..ca1a2ec8e 100644 --- a/Scripts/Main.gd +++ b/Scripts/Main.gd @@ -1,7 +1,5 @@ extends Control -var config_cache := ConfigFile.new() -var loaded_locales : Array var current_save_path := "" var current_export_path := "" var opensprite_file_selected := false @@ -27,28 +25,28 @@ func _ready() -> void: # `TranslationServer.get_loaded_locales()` was added in 3.2beta and in 3.1.2 # The `has_method()` check and the `else` branch can be removed once 3.2 is released. if TranslationServer.has_method("get_loaded_locales"): - loaded_locales = TranslationServer.get_loaded_locales() + Global.loaded_locales = TranslationServer.get_loaded_locales() else: # Hardcoded list of locales - loaded_locales = ["de", "el", "en", "fr", "pl", "ru", "zh_TW"] + Global.loaded_locales = ["de", "el", "en", "fr", "pl", "ru", "zh_TW"] # Make sure locales are always sorted, in the same order - loaded_locales.sort() + Global.loaded_locales.sort() # Load settings from the config file - config_cache.load("user://cache.ini") + Global.config_cache.load("user://cache.ini") # Restore the window position/size if values are present in the configuration cache - if config_cache.has_section_key("window", "screen"): - OS.current_screen = config_cache.get_value("window", "screen") - if config_cache.has_section_key("window", "maximized"): - OS.window_maximized = config_cache.get_value("window", "maximized") + if Global.config_cache.has_section_key("window", "screen"): + OS.current_screen = Global.config_cache.get_value("window", "screen") + if Global.config_cache.has_section_key("window", "maximized"): + OS.window_maximized = Global.config_cache.get_value("window", "maximized") if !OS.window_maximized: - if config_cache.has_section_key("window", "position"): - OS.window_position = config_cache.get_value("window", "position") - if config_cache.has_section_key("window", "size"): - OS.window_size = config_cache.get_value("window", "size") + if Global.config_cache.has_section_key("window", "position"): + OS.window_position = Global.config_cache.get_value("window", "position") + if Global.config_cache.has_section_key("window", "size"): + OS.window_size = Global.config_cache.get_value("window", "size") var file_menu_items := { "New..." : KEY_MASK_CMD + KEY_N, @@ -81,12 +79,12 @@ func _ready() -> void: } # Load language - if config_cache.has_section_key("preferences", "locale"): - var saved_locale : String = config_cache.get_value("preferences", "locale") + if Global.config_cache.has_section_key("preferences", "locale"): + var saved_locale : String = Global.config_cache.get_value("preferences", "locale") TranslationServer.set_locale(saved_locale) # Set the language option menu's default selected option to the loaded locale - var locale_index := loaded_locales.find(saved_locale) + var locale_index := Global.loaded_locales.find(saved_locale) $PreferencesDialog/VBoxContainer/OptionsContainer/LanguageOption.selected = locale_index + 1 else: # If the user doesn't have a language preference, set it to their OS' locale TranslationServer.set_locale(OS.get_locale()) @@ -637,28 +635,6 @@ func _on_ScaleImage_confirmed() -> void: Global.undo_redo.add_do_method(Global, "redo", [Global.canvas]) Global.undo_redo.commit_action() -func _on_LanguageOption_item_selected(ID : int) -> void: - if ID == 0: - TranslationServer.set_locale(OS.get_locale()) - else: - TranslationServer.set_locale(loaded_locales[ID - 1]) - if loaded_locales[ID - 1] == "zh_TW": - theme.default_font = preload("res://Assets/Fonts/NotoSansCJKtc-Regular.tres") - else: - theme.default_font = preload("res://Assets/Fonts/Roboto-Regular.tres") - - config_cache.set_value("preferences", "locale", TranslationServer.get_locale()) - config_cache.save("user://cache.ini") - -func _on_GridWidthValue_value_changed(value : float) -> void: - Global.grid_width = value - -func _on_GridHeightValue_value_changed(value : float) -> void: - Global.grid_height = value - -func _on_GridColor_color_changed(color : Color) -> void: - Global.grid_color = color - func _on_ImportSprites_popup_hide() -> void: if !opensprite_file_selected: Global.can_draw = true @@ -1048,14 +1024,6 @@ func _on_QuitDialog_confirmed() -> void: get_tree().quit() -func _exit_tree() -> void: - # Save the window position and size to remember it when restarting the application - config_cache.set_value("window", "screen", OS.current_screen) - config_cache.set_value("window", "maximized", OS.window_maximized || OS.window_fullscreen) - config_cache.set_value("window", "position", OS.window_position) - config_cache.set_value("window", "size", OS.window_size) - config_cache.save("user://cache.ini") - func _on_PaletteOptionButton_item_selected(ID) -> void: var palette_name = Global.palette_option_button.get_item_metadata(ID) Global.palette_container.on_palette_select(palette_name) diff --git a/Scripts/PaletteContainer.gd b/Scripts/PaletteContainer.gd index eb87a529c..11b839742 100644 --- a/Scripts/PaletteContainer.gd +++ b/Scripts/PaletteContainer.gd @@ -47,7 +47,7 @@ func on_import_palette() -> void: func on_palette_import_file_selected(path) -> void: var file := File.new() - + file.open(path, File.READ) var text = file.get_as_text() var result_json = JSON.parse(text) diff --git a/Scripts/PreferencesDialog.gd b/Scripts/PreferencesDialog.gd new file mode 100644 index 000000000..99251098d --- /dev/null +++ b/Scripts/PreferencesDialog.gd @@ -0,0 +1,23 @@ +extends AcceptDialog + +func _on_LanguageOption_item_selected(ID : int) -> void: + if ID == 0: + TranslationServer.set_locale(OS.get_locale()) + else: + TranslationServer.set_locale(Global.loaded_locales[ID - 1]) + if Global.loaded_locales[ID - 1] == "zh_TW": + Global.control.theme.default_font = preload("res://Assets/Fonts/NotoSansCJKtc-Regular.tres") + else: + Global.control.theme.default_font = preload("res://Assets/Fonts/Roboto-Regular.tres") + + Global.config_cache.set_value("preferences", "locale", TranslationServer.get_locale()) + Global.config_cache.save("user://cache.ini") + +func _on_GridWidthValue_value_changed(value : float) -> void: + Global.grid_width = value + +func _on_GridHeightValue_value_changed(value : float) -> void: + Global.grid_height = value + +func _on_GridColor_color_changed(color : Color) -> void: + Global.grid_color = color \ No newline at end of file