diff --git a/Assets/Graphics/Palette/new_swatch_button.png b/Assets/Graphics/Palette/new_swatch_button.png new file mode 100644 index 000000000..af798ea40 Binary files /dev/null and b/Assets/Graphics/Palette/new_swatch_button.png differ 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 000000000..7eadde1c5 Binary files /dev/null and b/Assets/Graphics/Palette/new_swatch_button_hover.png differ diff --git a/Assets/Graphics/Palette/new_swatch_button_hover.png.import b/Assets/Graphics/Palette/new_swatch_button_hover.png.import new file mode 100644 index 000000000..8762882ea --- /dev/null +++ b/Assets/Graphics/Palette/new_swatch_button_hover.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/new_swatch_button_hover.png-5a3842ea128669b8a5845c570dfb34de.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Graphics/Palette/new_swatch_button_hover.png" +dest_files=[ "res://.import/new_swatch_button_hover.png-5a3842ea128669b8a5845c570dfb34de.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/remove_swatch_button.png b/Assets/Graphics/Palette/remove_swatch_button.png new file mode 100644 index 000000000..6eac7ee70 Binary files /dev/null and b/Assets/Graphics/Palette/remove_swatch_button.png differ 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 000000000..e8f27d982 Binary files /dev/null and b/Assets/Graphics/Palette/remove_swatch_button_hover.png differ diff --git a/Assets/Graphics/Palette/remove_swatch_button_hover.png.import b/Assets/Graphics/Palette/remove_swatch_button_hover.png.import new file mode 100644 index 000000000..90c7e6797 --- /dev/null +++ b/Assets/Graphics/Palette/remove_swatch_button_hover.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/remove_swatch_button_hover.png-3d8cfbbb669e326875ae170abbd7ecbf.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Graphics/Palette/remove_swatch_button_hover.png" +dest_files=[ "res://.import/remove_swatch_button_hover.png-3d8cfbbb669e326875ae170abbd7ecbf.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/Main.tscn b/Main.tscn index ecfe7ca7c..641955183 100644 --- a/Main.tscn +++ b/Main.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=75 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,13 +55,22 @@ [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://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="Image" id=18] +[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 ), "format": "RGBA8", @@ -71,10 +80,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", @@ -84,7 +93,7 @@ data = { } [sub_resource type="ImageTexture" id=5] -image = SubResource( 19 ) +image = SubResource( 22 ) size = Vector2( 32, 32 ) [sub_resource type="InputEventKey" id=6] @@ -131,6 +140,9 @@ scancode = 16777230 [sub_resource type="ShortCut" id=17] shortcut = SubResource( 16 ) +[sub_resource type="StreamTexture" id=18] +load_path = "res://.import/new_layer.png-6f042042bc418daa72142f41f436a47c.stex" + [node name="Control" type="Control"] anchor_right = 1.0 anchor_bottom = 1.0 @@ -147,6 +159,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 ) @@ -214,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 @@ -228,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 @@ -350,6 +365,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 @@ -393,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"] @@ -774,6 +792,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 @@ -781,6 +800,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 @@ -830,6 +850,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 @@ -885,6 +906,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 @@ -1117,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 @@ -1166,6 +1189,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 @@ -1285,10 +1309,16 @@ 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 = 40.0 +margin_bottom = 40.0 +texture = SubResource( 18 ) [node name="RemovePalette" type="TextureButton" parent="MenuAndUI/UI/LayerPanel/LayersAndMisc/PaletteVBoxContainer/PaletteButtons"] margin_left = 36.0 @@ -1570,101 +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="."] -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 @@ -1735,138 +1678,14 @@ 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( 58 )] +visible = false -[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="NewPaletteDialog" parent="." instance=ExtResource( 59 )] -[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="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="."] @@ -1925,7 +1744,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"] @@ -1942,22 +1760,12 @@ 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"] [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="file_selected" from="PaletteImportFileDialog" to="." method="_on_PaletteImportFileDialog_file_selected"] [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..84d4746a7 --- /dev/null +++ b/Prefabs/EditPalettePopup.tscn @@ -0,0 +1,122 @@ +[gd_scene load_steps=6 format=2] + +[ext_resource path="res://Scripts/EditPalettePopup.gd" type="Script" id=1] +[ext_resource path="res://Assets/Graphics/Palette/new_swatch_button.png" type="Texture" id=2] +[ext_resource path="res://Assets/Graphics/Palette/new_swatch_button_hover.png" type="Texture" id=3] +[ext_resource path="res://Assets/Graphics/Palette/remove_swatch_button.png" type="Texture" id=4] +[ext_resource path="res://Assets/Graphics/Palette/remove_swatch_button_hover.png" type="Texture" id=5] + +[node name="EditPalettePopup" type="WindowDialog"] +visible = true +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 = 478.0 +size_flags_vertical = 3 + +[node name="EditPaletteColorPicker" type="ColorPicker" parent="VBoxContainer/HBoxContainer"] +margin_right = 290.0 +margin_bottom = 478.0 + +[node name="Panel" type="Panel" parent="VBoxContainer/HBoxContainer"] +margin_left = 294.0 +margin_right = 556.0 +margin_bottom = 478.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 = 560.0 +margin_right = 580.0 +margin_bottom = 478.0 + +[node name="AddSwatchButton" type="TextureButton" parent="VBoxContainer/HBoxContainer/VBoxContainer"] +margin_right = 20.0 +margin_bottom = 20.0 +texture_normal = ExtResource( 2 ) +texture_hover = ExtResource( 3 ) + +[node name="RemoveSwatchButton" type="TextureButton" parent="VBoxContainer/HBoxContainer/VBoxContainer"] +margin_top = 24.0 +margin_right = 20.0 +margin_bottom = 44.0 +texture_normal = ExtResource( 4 ) +texture_hover = ExtResource( 5 ) + +[node name="HBoxContainer3" type="HBoxContainer" parent="VBoxContainer"] +margin_top = 482.0 +margin_right = 580.0 +margin_bottom = 506.0 + +[node name="Label" type="Label" parent="VBoxContainer/HBoxContainer3"] +margin_top = 5.0 +margin_right = 79.0 +margin_bottom = 19.0 +text = "Color Name:" + +[node name="EditPaletteColorNameLineEdit" type="LineEdit" parent="VBoxContainer/HBoxContainer3"] +margin_left = 83.0 +margin_right = 580.0 +margin_bottom = 24.0 +size_flags_horizontal = 3 + +[node name="HBoxContainer2" type="HBoxContainer" parent="VBoxContainer"] +margin_top = 510.0 +margin_right = 580.0 +margin_bottom = 530.0 +size_flags_horizontal = 3 + +[node name="SpacerControl" type="Control" parent="VBoxContainer/HBoxContainer2"] +margin_right = 156.0 +margin_bottom = 20.0 +size_flags_horizontal = 3 + +[node name="EditPaletteSaveButton" type="Button" parent="VBoxContainer/HBoxContainer2"] +margin_left = 160.0 +margin_right = 201.0 +margin_bottom = 20.0 +text = "Save" + +[node name="SpacerControl2" type="Control" parent="VBoxContainer/HBoxContainer2"] +margin_left = 205.0 +margin_right = 361.0 +margin_bottom = 20.0 +size_flags_horizontal = 3 + +[node name="EditPaletteCancelButton" type="Button" parent="VBoxContainer/HBoxContainer2"] +margin_left = 365.0 +margin_right = 419.0 +margin_bottom = 20.0 +text = "Cancel" + +[node name="SpacerControl3" type="Control" parent="VBoxContainer/HBoxContainer2"] +margin_left = 423.0 +margin_right = 580.0 +margin_bottom = 20.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..2d6296f0f --- /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 = 6.0 +margin_right = 91.0 +margin_bottom = 20.0 +text = "Palette Name:" + +[node name="NewPaletteNameLineEdit" type="LineEdit" parent="HBoxContainer2"] +margin_left = 95.0 +margin_right = 357.0 +margin_bottom = 26.0 +size_flags_horizontal = 3 +expand_to_text_length = true diff --git a/Prefabs/PaletteImportFileDialog.tscn b/Prefabs/PaletteImportFileDialog.tscn new file mode 100644 index 000000000..d49d89e2c --- /dev/null +++ b/Prefabs/PaletteImportFileDialog.tscn @@ -0,0 +1,13 @@ +[gd_scene format=2] + +[node name="PaletteImportFileDialog" type="FileDialog"] +anchor_right = 1.0 +anchor_bottom = 1.0 +rect_min_size = Vector2( 500, 300 ) +window_title = "Open a File" +resizable = true +mode = 0 +access = 2 +filters = PoolStringArray( "*.json ; JavaScript Object Notation" ) +current_dir = "D:/GitHub/Pixelorama" +current_path = "D:/GitHub/Pixelorama/" 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/EditPalettePopup.gd b/Scripts/EditPalettePopup.gd index ba6d7d354..3b75fe658 100644 --- a/Scripts/EditPalettePopup.gd +++ b/Scripts/EditPalettePopup.gd @@ -103,13 +103,13 @@ func _on_EditPaletteCancelButton_pressed() -> 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 cfe5ec39e..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 @@ -182,7 +185,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 @@ -190,6 +193,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 +287,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") @@ -489,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 9586ed6c1..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()) @@ -101,6 +99,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 +124,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 @@ -635,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 @@ -1046,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) @@ -1066,6 +1036,18 @@ 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 + +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 ef75a2597..11b839742 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 : = {} @@ -34,6 +34,48 @@ 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: + 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: var palette : Dictionary = Global.palettes[current_palette] @@ -44,6 +86,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/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 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 )