From b57e2c3c74a389a62299050cb7cfae7bd3df4648 Mon Sep 17 00:00:00 2001 From: CheetoHead Date: Mon, 16 Dec 2019 10:14:16 -0500 Subject: [PATCH 1/6] Palette switching bug fix --- Scripts/PaletteContainer.gd | 56 +++++++++++-------------------------- 1 file changed, 16 insertions(+), 40 deletions(-) diff --git a/Scripts/PaletteContainer.gd b/Scripts/PaletteContainer.gd index eb733ff..cd904d8 100644 --- a/Scripts/PaletteContainer.gd +++ b/Scripts/PaletteContainer.gd @@ -4,47 +4,12 @@ var palette_button = preload("res://Prefabs/PaletteButton.tscn"); var current_palette = "Default" -var default_palette = [ - Color("#FF000000"), - Color("#FF222034"), - Color("#FF45283c"), - Color("#FF663931"), - Color("#FF8f563b"), - Color("#FFdf7126"), - Color("#FFd9a066"), - Color("#FFeec39a"), - Color("#FFfbf236"), - Color("#FF99e550"), - Color("#FF6abe30"), - Color("#FF37946e"), - Color("#FF4b692f"), - Color("#FF524b24"), - Color("#FF323c39"), - Color("#FF3f3f74"), - Color("#FF306082"), - Color("#FF5b6ee1"), - Color("#FF639bff"), - Color("#FF5fcde4"), - Color("#FFcbdbfc"), - Color("#FFffffff"), - Color("#FF9badb7"), - Color("#FF847e87"), - Color("#FF696a6a"), - Color("#FF595652"), - Color("#FF76428a"), - Color("#FFac3232"), - Color("#FFd95763"), - Color("#FFd77bba"), - Color("#FF8f974a"), - Color("#FF8a6f30") -] - # Called when the node enters the scene tree for the first time. func _ready() -> void: - #Global.palettes["Default"] = default_palette _load_palettes() + #Select default palette "Default" on_palette_select(current_palette) pass # Replace with function body. @@ -57,26 +22,32 @@ func _clear_swatches() -> void: func on_palette_select(palette_name : String) -> void: _clear_swatches() - if Global.palettes.has(palette_name): + if Global.palettes.has(palette_name): #Palette exists in memory + current_palette = palette_name _display_palette(Global.palettes[palette_name]) - else: + else: #Use default on fail + current_palette = "Default" _display_palette(Global.palettes["Default"]) pass func _display_palette(palette : Array) -> void: var index := 0 + for color_data in palette: var color = Color(color_data.data) var new_button = palette_button.instance() + new_button.get_child(0).modulate = color new_button.hint_tooltip = color_data.data.to_upper() + " " + color_data.name new_button.connect("pressed", self, "on_color_select", [index]) + add_child(new_button) index += 1 pass func on_color_select(index : int) -> void: var color = Color(Global.palettes[current_palette][index].data) + if Input.is_action_just_released("left_mouse"): Global.left_color_picker.color = color Global.update_left_custom_brush() @@ -92,6 +63,7 @@ func _load_palettes() -> void: if not dir.dir_exists("user://palettes"): dir.make_dir("user://palettes"); + dir.make_dir("user://palettes/custom"); dir.copy("res://Assets/Graphics/Palette/default_palette.json","user://palettes/default_palette.json"); dir.copy("res://Assets/Graphics/Palette/bubblegum16.json","user://palettes/bubblegum16.json"); @@ -121,6 +93,7 @@ func _load_palettes() -> void: pass func load_palette(path : String) -> String: + # Open file for reading var file := File.new() file.open(path, File.READ) @@ -128,7 +101,7 @@ func load_palette(path : String) -> String: var result_json = JSON.parse(text) var result = {} - var palette_name = null + var palette_name = null # Default error condition if result_json.error != OK: # If parse has errors print("Error: ", result_json.error) @@ -136,7 +109,7 @@ func load_palette(path : String) -> String: print("Error String: ", result_json.error_string) else: # If parse OK var data = result_json.result - if data.has("name"): + if data.has("name"): #If data is 'valid' palette file palette_name = data.name Global.palettes[data.name] = data.colors @@ -145,13 +118,16 @@ func load_palette(path : String) -> String: return palette_name func _save_palette(palette : Array, name : String, path : String): + # Open file for writing var file := File.new() file.open(path, File.WRITE) + # Create palette data var data := {} data.name = name data.colors = palette + # Write palette data to file file.store_string(JSON.print(data)) file.close() From 5ba89fddbdd4991b166dbe07c2c6ea0fb471d96b Mon Sep 17 00:00:00 2001 From: CheetoHead Date: Mon, 16 Dec 2019 10:35:17 -0500 Subject: [PATCH 2/6] Updated default palettes to include 'editable' flag --- Assets/Graphics/Palette/bubblegum16.json | 7 ++++--- Assets/Graphics/Palette/default_palette.json | 8 +++++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/Assets/Graphics/Palette/bubblegum16.json b/Assets/Graphics/Palette/bubblegum16.json index 1239d8a..021041a 100644 --- a/Assets/Graphics/Palette/bubblegum16.json +++ b/Assets/Graphics/Palette/bubblegum16.json @@ -1,6 +1,6 @@ { - "name": "BubbleGum16", - "colors" : [ + "name": "BubbleGum16", + "colors" : [ { "data" : "#FF000000", "name" : "no name" }, { "data" : "#FF7f0622", "name" : "no name" }, { "data" : "#FFd62411", "name" : "no name" }, @@ -18,5 +18,6 @@ { "data" : "#FF007899", "name" : "no name" }, { "data" : "#FF002859", "name" : "no name" }, ], - "comments": "by PineTreePizza - https://twitter.com/PineTreePizza" + "comments": "by PineTreePizza - https://twitter.com/PineTreePizza", + "editable": false } \ No newline at end of file diff --git a/Assets/Graphics/Palette/default_palette.json b/Assets/Graphics/Palette/default_palette.json index b76ab8e..73d3c7e 100644 --- a/Assets/Graphics/Palette/default_palette.json +++ b/Assets/Graphics/Palette/default_palette.json @@ -1,6 +1,6 @@ { - "name": "Default", - "colors" : [ + "name": "Default", + "colors" : [ { "data" : "#FF000000", "name" : "no name" }, { "data" : "#FF222034", "name" : "no name" }, { "data" : "#FF45283c", "name" : "no name" }, @@ -33,5 +33,7 @@ { "data" : "#FFd77bba", "name" : "no name" }, { "data" : "#FF8f974a", "name" : "no name" }, { "data" : "#FF8a6f30", "name" : "no name" } - ] + ], + "comments": "Aseprite default palette", + "editable": false } \ No newline at end of file From 388352467b48ec14cc7ac1678bc0c061a62c6447 Mon Sep 17 00:00:00 2001 From: CheetoHead Date: Mon, 16 Dec 2019 10:48:23 -0500 Subject: [PATCH 3/6] Updated remove button to be disabled for default palettes --- Main.tscn | 49 +++++++++++++------------------------ Scripts/PaletteContainer.gd | 26 +++++++++++--------- project.godot | 3 +-- 3 files changed, 32 insertions(+), 46 deletions(-) diff --git a/Main.tscn b/Main.tscn index 1f3b7d8..11f3fcd 100644 --- a/Main.tscn +++ b/Main.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=63 format=2] +[gd_scene load_steps=61 format=2] [ext_resource path="res://Themes & Styles/Main Theme.tres" type="Theme" id=1] [ext_resource path="res://Scripts/Main.gd" type="Script" id=2] @@ -47,13 +47,7 @@ [sub_resource type="StyleBoxFlat" id=1] bg_color = Color( 0.223529, 0.223529, 0.243137, 1 ) -[sub_resource type="InputEventKey" id=18] -scancode = 88 - -[sub_resource type="ShortCut" id=19] -shortcut = SubResource( 18 ) - -[sub_resource type="Image" id=20] +[sub_resource type="Image" id=18] 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", @@ -63,10 +57,10 @@ data = { } [sub_resource type="ImageTexture" id=3] -image = SubResource( 20 ) +image = SubResource( 18 ) size = Vector2( 32, 32 ) -[sub_resource type="Image" id=21] +[sub_resource type="Image" id=19] 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", @@ -76,7 +70,7 @@ data = { } [sub_resource type="ImageTexture" id=5] -image = SubResource( 21 ) +image = SubResource( 19 ) size = Vector2( 32, 32 ) [sub_resource type="InputEventKey" id=6] @@ -139,14 +133,12 @@ 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 ) custom_styles/panel = SubResource( 1 ) [node name="MenuItems" type="HBoxContainer" parent="MenuAndUI/MenuContainer"] -editor/display_folded = true margin_left = 2.0 margin_top = 4.0 margin_right = 1010.0 @@ -353,6 +345,7 @@ custom_constants/separation = 8 alignment = 1 [node name="ColorPickersCenter" type="CenterContainer" parent="MenuAndUI/UI/ToolPanel/Tools/ColorAndToolOptions"] +editor/display_folded = true margin_top = 35.0 margin_right = 208.0 margin_bottom = 67.0 @@ -373,6 +366,7 @@ size_flags_vertical = 0 flat = true [node name="ColorButtonsCenter" type="CenterContainer" parent="MenuAndUI/UI/ToolPanel/Tools/ColorAndToolOptions/ColorPickersCenter/ColorPickersHorizontal"] +editor/display_folded = true margin_left = 68.0 margin_right = 85.0 margin_bottom = 32.0 @@ -387,8 +381,6 @@ margin_right = 17.0 margin_bottom = 7.0 hint_tooltip = "COLORSWITCH_HT" mouse_default_cursor_shape = 2 -shortcut_in_tooltip = false -shortcut = SubResource( 19 ) texture_normal = ExtResource( 9 ) [node name="ColorDefaults" type="TextureButton" parent="MenuAndUI/UI/ToolPanel/Tools/ColorAndToolOptions/ColorPickersCenter/ColorPickersHorizontal/ColorButtonsCenter/ColorButtonsVertical"] @@ -780,7 +772,6 @@ 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 @@ -788,7 +779,6 @@ 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 @@ -806,7 +796,6 @@ margin_right = 704.0 margin_bottom = 16.0 rect_min_size = Vector2( 0, 16 ) focus_mode = 0 -mouse_default_cursor_shape = 15 custom_styles/hover = ExtResource( 12 ) custom_styles/pressed = ExtResource( 12 ) custom_styles/focus = ExtResource( 12 ) @@ -827,7 +816,6 @@ margin_right = 16.0 margin_bottom = 462.0 rect_min_size = Vector2( 16, 0 ) focus_mode = 0 -mouse_default_cursor_shape = 14 size_flags_horizontal = 0 size_flags_vertical = 3 custom_styles/hover = ExtResource( 12 ) @@ -839,7 +827,6 @@ 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 @@ -875,7 +862,6 @@ margin_right = 319.0 margin_bottom = 464.0 [node name="ViewportContainer2" type="ViewportContainer" parent="MenuAndUI/UI/CanvasAndTimeline/HViewportContainer"] -editor/display_folded = true visible = false margin_left = 345.0 margin_right = 686.0 @@ -896,7 +882,6 @@ 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 @@ -1171,7 +1156,6 @@ 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 @@ -1295,6 +1279,7 @@ margin_left = 36.0 margin_right = 68.0 margin_bottom = 32.0 texture_normal = ExtResource( 30 ) +texture_disabled = ExtResource( 31 ) [node name="PaletteOptionButton" type="OptionButton" parent="MenuAndUI/UI/LayerPanel/LayersAndMisc/PaletteVBoxContainer/PaletteButtons"] margin_left = 72.0 @@ -1452,8 +1437,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 @@ -1468,8 +1453,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 @@ -1479,8 +1464,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 @@ -1495,8 +1480,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 @@ -1598,7 +1583,7 @@ margin_left = 61.0 margin_right = 142.0 margin_bottom = 21.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 ] +items = [ "System Language", null, false, 0, null, "German [de]", null, false, 1, null, "Greek [el]", null, false, 2, null, "English [en]", null, false, 3, null, "French [fr]", null, false, 4, null ] selected = 0 [node name="GridOptionsLabel" type="Label" parent="PreferencesDialog/VBoxContainer"] diff --git a/Scripts/PaletteContainer.gd b/Scripts/PaletteContainer.gd index db94432..3019cdd 100644 --- a/Scripts/PaletteContainer.gd +++ b/Scripts/PaletteContainer.gd @@ -21,15 +21,22 @@ func on_palette_select(palette_name : String) -> void: _clear_swatches() if Global.palettes.has(palette_name): #Palette exists in memory current_palette = palette_name - _display_palette(Global.palettes[palette_name]) + var palette : Dictionary = Global.palettes[palette_name] + + Global.remove_palette_button.disabled = true # Cannot remove by default + if(palette.has("editable")): + if(palette.editable): + Global.remove_palette_button.disabled = false # Can remove if custom palette + + _display_palette(palette) else: #Use default on fail current_palette = "Default" _display_palette(Global.palettes["Default"]) -func _display_palette(palette : Array) -> void: +func _display_palette(palette : Dictionary) -> void: var index := 0 - for color_data in palette: + for color_data in palette.colors: var color = Color(color_data.data) var new_button = palette_button.instance() @@ -41,7 +48,7 @@ func _display_palette(palette : Array) -> void: index += 1 func on_color_select(index : int) -> void: - var color = Color(Global.palettes[current_palette][index].data) + var color = Color(Global.palettes[current_palette].colors[index].data) if Input.is_action_just_released("left_mouse"): Global.left_color_picker.color = color @@ -104,22 +111,17 @@ func load_palette(path : String) -> String: var data = result_json.result if data.has("name"): #If data is 'valid' palette file palette_name = data.name - Global.palettes[data.name] = data.colors + Global.palettes[data.name] = data file.close() return palette_name -func _save_palette(palette : Array, name : String, path : String) -> void: +func _save_palette(palette : Dictionary, name : String, path : String) -> void: # Open file for writing var file := File.new() file.open(path, File.WRITE) - # Create palette data - var data := {} - data.name = name - data.colors = palette - # Write palette data to file - file.store_string(JSON.print(data)) + file.store_string(JSON.print(palette)) file.close() diff --git a/project.godot b/project.godot index 5cb7618..1bdf76d 100644 --- a/project.godot +++ b/project.godot @@ -33,7 +33,6 @@ _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 ) @@ -188,7 +187,7 @@ shift={ [locale] -translations=PoolStringArray( "res://Translations/#Translations.en.translation", "res://Translations/#Translations.el.translation", "res://Translations/#Translations.fr.translation", "res://Translations/#Translations.de.translation", "res://Translations/#Translations.pl.translation" ) +translations=PoolStringArray( "res://Translations/#Translations.en.translation", "res://Translations/#Translations.el.translation", "res://Translations/#Translations.fr.translation", "res://Translations/#Translations.de.translation" ) locale_filter=[ 0, [ ] ] [rendering] From b094c6595f677b4600b17060510f5bcf970e7960 Mon Sep 17 00:00:00 2001 From: CheetoHead Date: Mon, 16 Dec 2019 20:23:18 -0500 Subject: [PATCH 4/6] Added edit palette menu and custom file saving --- .../Graphics/Palette/swatch_drag_preview.png | Bin 0 -> 111 bytes .../Palette/swatch_drag_preview.png.import | 34 +++ Main.tscn | 267 ++++++++++++++---- Prefabs/PaletteButton.tscn | 14 +- Scripts/EditPalettePopup.gd | 131 +++++++++ Scripts/Global.gd | 10 + Scripts/Main.gd | 13 + Scripts/PaletteButton.gd | 39 +++ Scripts/PaletteContainer.gd | 131 +++++++-- .../StyleBoxes/palette_stylebox_focus.tres | 11 + 10 files changed, 563 insertions(+), 87 deletions(-) create mode 100644 Assets/Graphics/Palette/swatch_drag_preview.png create mode 100644 Assets/Graphics/Palette/swatch_drag_preview.png.import create mode 100644 Scripts/EditPalettePopup.gd create mode 100644 Scripts/PaletteButton.gd create mode 100644 Themes & Styles/StyleBoxes/palette_stylebox_focus.tres diff --git a/Assets/Graphics/Palette/swatch_drag_preview.png b/Assets/Graphics/Palette/swatch_drag_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..401e4802955876327d5e4f41fcbd6128509106bf GIT binary patch literal 111 zcmeAS@N?(olHy`uVBq!ia0vp^QXtI11|(N{`J4k%W}YsNAs(G?uWb}%P~bRnVNU6aEo&~WQ-(KY<4>W void: + current_palette = palette + if Global.palettes.has(palette): + working_palette = Global.palettes[palette].duplicate() + + _display_palette() + + self.popup_centered() + pass + +func _display_palette() -> void: + _clear_swatches() + var index := 0 + + for color_data in working_palette.colors: + var color = Color(color_data.data) + var new_button = palette_button.instance() + + new_button.color = color + new_button.get_child(0).modulate = color + new_button.hint_tooltip = color_data.data.to_upper() + " " + color_data.name + new_button.draggable = true + new_button.index = index + new_button.connect("on_drop_data", self, "on_move_swatch") + new_button.connect("pressed", self, "on_swatch_select", [index]) + + palette_grid.add_child(new_button) + index += 1 + +func _clear_swatches() -> void: + for child in palette_grid.get_children(): + if child is BaseButton: + child.disconnect("on_drop_data", self, "on_move_swatch") + child.queue_free() + +func on_swatch_select(index : int) -> void: + current_swatch = index + color_name_edit.text = working_palette.colors[index].name + color_picker.color = working_palette.colors[index].data + pass + +func on_move_swatch(from : int, to : int) -> void: + var color_to_move = working_palette.colors[from] + working_palette.colors.remove(from) + working_palette.colors.insert(to, color_to_move) + + palette_grid.move_child(palette_grid.get_child(from), to) + + # Re-index swatches with new order + var index := 0 + for child in palette_grid.get_children(): + child.index = index + index += 1 + pass + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass + +func _on_AddSwatchButton_pressed() -> void: + var color = Color.white + var color_data = {} + color_data.data = color.to_html(true) + color_data.name = "no name" + working_palette.colors.push_back(color_data) + var new_button = palette_button.instance() + + new_button.color = color + new_button.get_child(0).modulate = color + new_button.hint_tooltip = color_data.data.to_upper() + " " + color_data.name + new_button.draggable = true + var index : int = palette_grid.get_child_count() + new_button.index = index + new_button.connect("on_drop_data", self, "on_move_swatch") + new_button.connect("pressed", self, "on_swatch_select", [index]) + + palette_grid.add_child(new_button) + pass # Replace with function body. + +func _on_RemoveSwatchButton_pressed() -> void: + working_palette.colors.remove(current_swatch) + palette_grid.remove_child(palette_grid.get_child(current_swatch)) + pass # Replace with function body. + +func _on_EditPaletteSaveButton_pressed() -> void: + Global.palettes[current_palette] = working_palette + Global.palette_container.on_palette_select(current_palette) + Global.palette_container.save_palette(current_palette, working_palette.name + ".json") + self.hide() + pass # Replace with function body. + +func _on_EditPaletteCancelButton_pressed() -> void: + self.hide() + pass # Replace with function body. + +func _on_EditPaletteColorNameLineEdit_text_changed(new_text) -> void: + 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(): + 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) + pass + +func _refresh_hint_tooltip(index : int): + palette_grid.get_child(current_swatch).hint_tooltip = working_palette.colors[current_swatch].data.to_upper() + " " + working_palette.colors[current_swatch].name + pass diff --git a/Scripts/Global.gd b/Scripts/Global.gd index 6d2fa37..2e626c3 100644 --- a/Scripts/Global.gd +++ b/Scripts/Global.gd @@ -187,6 +187,11 @@ var remove_palette_button : TextureButton var palette_option_button : OptionButton var edit_palette_button : BaseButton var palette_container : GridContainer +var edit_palette_popup : WindowDialog +var new_palette_dialog : ConfirmationDialog +var new_palette_name_line_edit : LineEdit + +var error_dialog : AcceptDialog func _ready() -> void: undo_redo = UndoRedo.new() @@ -275,6 +280,11 @@ func _ready() -> void: palette_option_button = find_node_by_name(root, "PaletteOptionButton") edit_palette_button = find_node_by_name(root, "EditPalette") palette_container = find_node_by_name(root, "PaletteContainer") + 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") + + error_dialog = find_node_by_name(root, "ErrorDialog") #Thanks to https://godotengine.org/qa/17524/how-to-find-an-instanced-scene-by-its-name func find_node_by_name(root, node_name) -> Node: diff --git a/Scripts/Main.gd b/Scripts/Main.gd index d6676e4..b87ef4d 100644 --- a/Scripts/Main.gd +++ b/Scripts/Main.gd @@ -1047,3 +1047,16 @@ func _exit_tree() -> void: 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) + +func _on_EditPalette_pressed() -> void: + Global.palette_container.on_edit_palette() + pass + +func _on_RemovePalette_pressed() -> void: + Global.palette_container.remove_current_palette() + pass + +func _on_NewPaletteDialog_confirmed() -> void: + Global.palette_container.on_new_palette_confirmed() + pass + diff --git a/Scripts/PaletteButton.gd b/Scripts/PaletteButton.gd new file mode 100644 index 0000000..492bda6 --- /dev/null +++ b/Scripts/PaletteButton.gd @@ -0,0 +1,39 @@ +extends Button + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" + +signal on_drop_data + +export var index := 0; +export var color : Color = Color.white +export var draggable := false + +var drag_preview_texture = preload("res://Assets/Graphics/Palette/swatch_drag_preview.png") + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + +func get_drag_data(position): + var data = null; + if(draggable): + #print(String(get_instance_id()) + ": Drag Start"); + data = {source_index = index}; + var drag_icon = TextureRect.new(); + drag_icon.texture = drag_preview_texture; + drag_icon.modulate = color + set_drag_preview(drag_icon); + return data; + +func can_drop_data(position, data): + return true; + +func drop_data(position, data): + emit_signal("on_drop_data", data.source_index, index); + pass; + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass diff --git a/Scripts/PaletteContainer.gd b/Scripts/PaletteContainer.gd index 3019cdd..7759f8c 100644 --- a/Scripts/PaletteContainer.gd +++ b/Scripts/PaletteContainer.gd @@ -3,6 +3,7 @@ extends GridContainer var palette_button = preload("res://Prefabs/PaletteButton.tscn"); var current_palette = "Default" +var from_palette : = {} # Called when the node enters the scene tree for the first time. func _ready() -> void: @@ -24,8 +25,8 @@ func on_palette_select(palette_name : String) -> void: var palette : Dictionary = Global.palettes[palette_name] Global.remove_palette_button.disabled = true # Cannot remove by default - if(palette.has("editable")): - if(palette.editable): + if palette.has("editable"): + if palette.editable: Global.remove_palette_button.disabled = false # Can remove if custom palette _display_palette(palette) @@ -33,6 +34,62 @@ func on_palette_select(palette_name : String) -> void: current_palette = "Default" _display_palette(Global.palettes["Default"]) +func on_edit_palette() -> void: + var palette : Dictionary = Global.palettes[current_palette] + + var create_new_palette := true # Create new palette by default + if palette.has("editable"): + if palette.editable: + create_new_palette = false # Edit if already a custom palette + + if create_new_palette: + from_palette = Global.palettes[current_palette] + Global.new_palette_name_line_edit.text = "Custom_" + current_palette + Global.new_palette_dialog.popup_centered() + else: + from_palette = {} + Global.edit_palette_popup.open(current_palette) + +func on_new_palette_confirmed() -> void: + var new_palette_name : String = Global.new_palette_name_line_edit.text + var result : String = create_new_palette(new_palette_name, from_palette) + if not result.empty(): + Global.error_dialog.set_text(result); + Global.error_dialog.popup_centered() + +func create_new_palette(name : String, from_palette : Dictionary = {}) -> String: # Returns empty string, else error string + var new_palette : Dictionary = {} + + # Check if new name is valid + if name.empty(): + return "Error: Palette must have a valid name." + if Global.palettes.has(name): + return "Error: Palette '" + name + "' already exists!" + + new_palette.name = name + + # Check if source palette has data + if from_palette.has("name"): + new_palette = from_palette.duplicate() + new_palette.name = name + new_palette.editable = true + else: + new_palette.colors = [] + new_palette.comments = "" + new_palette.editable = true + + # Add palette to Global and options + Global.palettes[name] = new_palette + Global.palette_option_button.add_item(name) + var index := Global.palette_option_button.get_item_count() - 1 + Global.palette_option_button.set_item_metadata(index, name) + Global.palette_option_button.select(index) + + save_palette(name, name + ".json") + + on_palette_select(name) + return "" + func _display_palette(palette : Dictionary) -> void: var index := 0 @@ -58,29 +115,17 @@ func on_color_select(index : int) -> void: Global.update_right_custom_brush() func _load_palettes() -> void: - var files := [] - var dir := Directory.new() if not dir.dir_exists("user://palettes"): dir.make_dir("user://palettes"); - dir.make_dir("user://palettes/custom"); + dir.make_dir("user://custom/palettes") dir.copy("res://Assets/Graphics/Palette/default_palette.json","user://palettes/default_palette.json"); dir.copy("res://Assets/Graphics/Palette/bubblegum16.json","user://palettes/bubblegum16.json"); - dir.open("user://palettes") - dir.list_dir_begin() + var palette_files : Array = get_palette_files("user://palettes") - while true: - var file_name = dir.get_next() - if file_name == "": - break - elif not file_name.begins_with(".") && file_name.to_lower().ends_with("json"): - files.append(file_name) - - dir.list_dir_end() - - for file_name in files: + for file_name in palette_files: var result : String = load_palette("user://palettes/" + file_name) if result: Global.palette_option_button.add_item(result) @@ -88,9 +133,34 @@ func _load_palettes() -> void: Global.palette_option_button.set_item_metadata(index, result) if result == "Default": Global.palette_option_button.select(index) + + dir.open("user://palettes/custom") + var custom_palette_files : Array = get_palette_files("user://palettes/custom") + + for file_name in custom_palette_files: + var result : String = load_palette("user://palettes/custom/" + file_name) + if result: + Global.palette_option_button.add_item(result) + var index := Global.palette_option_button.get_item_count() - 1 + Global.palette_option_button.set_item_metadata(index, result) - for item in Global.palette_option_button.items: - print(item) +func get_palette_files(path : String) -> Array: + var dir := Directory.new() + var results = [] + + dir.open(path) + dir.list_dir_begin() + + while true: + var file_name = dir.get_next() + if file_name == "": + break + elif not file_name.begins_with(".") && file_name.to_lower().ends_with("json"): + results.append(file_name) + + dir.list_dir_end() + + return results func load_palette(path : String) -> String: # Open file for reading @@ -117,11 +187,28 @@ func load_palette(path : String) -> String: return palette_name -func _save_palette(palette : Dictionary, name : String, path : String) -> void: +func remove_current_palette() -> void: + if Global.palettes[current_palette].has("editable"): + if Global.palettes[current_palette].editable: + _delete_palette_file(current_palette + ".json") + Global.palettes.erase(current_palette) + var selected_index := Global.palette_option_button.selected + Global.palette_option_button.remove_item(selected_index) + if(selected_index - 1 >= 0): + Global.palette_option_button.select(selected_index - 1) + on_palette_select(Global.palette_option_button.get_item_metadata(selected_index - 1)) + pass + +func _delete_palette_file(file_name : String) -> void: + var dir = Directory.new() + dir.remove("user://palettes/custom/" + file_name) + +func save_palette(palette_name : String, filename : String) -> void: + var palette_data = Global.palettes[palette_name] # Open file for writing var file := File.new() - file.open(path, File.WRITE) + file.open("user://palettes/custom/" + filename, File.WRITE) # Write palette data to file - file.store_string(JSON.print(palette)) + file.store_string(JSON.print(palette_data)) file.close() diff --git a/Themes & Styles/StyleBoxes/palette_stylebox_focus.tres b/Themes & Styles/StyleBoxes/palette_stylebox_focus.tres new file mode 100644 index 0000000..b734ad9 --- /dev/null +++ b/Themes & Styles/StyleBoxes/palette_stylebox_focus.tres @@ -0,0 +1,11 @@ +[gd_resource type="StyleBoxTexture" load_steps=2 format=2] + +[ext_resource path="res://Assets/Graphics/Palette/palette_button.png" type="Texture" id=1] + +[resource] +texture = ExtResource( 1 ) +region_rect = Rect2( 0, 0, 8, 8 ) +margin_left = 2.0 +margin_right = 2.0 +margin_top = 2.0 +margin_bottom = 2.0 From 6bd4f57903bf9a485e17f108854c91937152cd3b Mon Sep 17 00:00:00 2001 From: CheetoHead Date: Mon, 16 Dec 2019 20:37:42 -0500 Subject: [PATCH 5/6] Merged with 58f47d0 --- Main.tscn | 284 ++++++++++++++++---------------- Themes & Styles/Main Theme.tres | 20 +-- 2 files changed, 150 insertions(+), 154 deletions(-) diff --git a/Main.tscn b/Main.tscn index 49c4d3a..40987e4 100644 --- a/Main.tscn +++ b/Main.tscn @@ -48,13 +48,7 @@ [sub_resource type="StyleBoxFlat" id=1] bg_color = Color( 0.223529, 0.223529, 0.243137, 1 ) -[sub_resource type="InputEventKey" id=2] -scancode = 88 - -[sub_resource type="ShortCut" id=3] -shortcut = SubResource( 2 ) - -[sub_resource type="Image" id=20] +[sub_resource type="Image" id=18] 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", @@ -63,8 +57,8 @@ data = { "width": 32 } -[sub_resource type="ImageTexture" id=5] -image = SubResource( 20 ) +[sub_resource type="ImageTexture" id=3] +image = SubResource( 18 ) size = Vector2( 32, 32 ) [sub_resource type="Image" id=19] @@ -76,34 +70,42 @@ data = { "width": 32 } -[sub_resource type="ImageTexture" id=7] -image = SubResource( 21 ) +[sub_resource type="ImageTexture" id=5] +image = SubResource( 19 ) size = Vector2( 32, 32 ) +[sub_resource type="InputEventKey" id=6] +control = true +command = true +scancode = 16777229 + +[sub_resource type="ShortCut" id=7] +shortcut = SubResource( 6 ) + [sub_resource type="InputEventKey" id=8] control = true command = true -scancode = 16777229 +scancode = 16777231 [sub_resource type="ShortCut" id=9] shortcut = SubResource( 8 ) [sub_resource type="InputEventKey" id=10] -control = true -command = true -scancode = 16777231 +scancode = 16777247 [sub_resource type="ShortCut" id=11] shortcut = SubResource( 10 ) [sub_resource type="InputEventKey" id=12] -scancode = 16777247 +scancode = 16777248 [sub_resource type="ShortCut" id=13] shortcut = SubResource( 12 ) [sub_resource type="InputEventKey" id=14] -scancode = 16777248 +control = true +command = true +scancode = 16777233 [sub_resource type="ShortCut" id=15] shortcut = SubResource( 14 ) @@ -111,19 +113,11 @@ shortcut = SubResource( 14 ) [sub_resource type="InputEventKey" id=16] control = true command = true -scancode = 16777233 +scancode = 16777230 [sub_resource type="ShortCut" id=17] shortcut = SubResource( 16 ) -[sub_resource type="InputEventKey" id=18] -control = true -command = true -scancode = 16777230 - -[sub_resource type="ShortCut" id=19] -shortcut = SubResource( 18 ) - [node name="Control" type="Control"] anchor_right = 1.0 anchor_bottom = 1.0 @@ -153,7 +147,7 @@ margin_right = 1010.0 [node name="FileMenu" type="MenuButton" parent="MenuAndUI/MenuContainer/MenuItems"] margin_right = 31.0 -margin_bottom = 23.0 +margin_bottom = 21.0 mouse_default_cursor_shape = 2 text = "File" switch_on_hover = true @@ -161,7 +155,7 @@ switch_on_hover = true [node name="EditMenu" type="MenuButton" parent="MenuAndUI/MenuContainer/MenuItems"] margin_left = 35.0 margin_right = 68.0 -margin_bottom = 23.0 +margin_bottom = 21.0 mouse_default_cursor_shape = 2 text = "Edit" switch_on_hover = true @@ -169,7 +163,7 @@ switch_on_hover = true [node name="ViewMenu" type="MenuButton" parent="MenuAndUI/MenuContainer/MenuItems"] margin_left = 72.0 margin_right = 110.0 -margin_bottom = 23.0 +margin_bottom = 21.0 mouse_default_cursor_shape = 2 text = "View" switch_on_hover = true @@ -177,7 +171,7 @@ switch_on_hover = true [node name="HelpMenu" type="MenuButton" parent="MenuAndUI/MenuContainer/MenuItems"] margin_left = 114.0 margin_right = 151.0 -margin_bottom = 23.0 +margin_bottom = 21.0 mouse_default_cursor_shape = 2 text = "Help" switch_on_hover = true @@ -232,6 +226,7 @@ size_flags_vertical = 3 custom_constants/separation = 32 [node name="MenusAndTools" type="VBoxContainer" parent="MenuAndUI/UI/ToolPanel/Tools"] +editor/display_folded = true margin_right = 208.0 margin_bottom = 127.0 custom_constants/separation = 17 @@ -279,6 +274,7 @@ button_mask = 3 texture_normal = ExtResource( 4 ) [node name="DrawTools" type="VBoxContainer" parent="MenuAndUI/UI/ToolPanel/Tools/MenusAndTools"] +editor/display_folded = true margin_top = 72.0 margin_right = 208.0 margin_bottom = 127.0 @@ -300,6 +296,7 @@ margin_right = 208.0 margin_bottom = 19.0 [node name="PaintToolsContainer" type="HBoxContainer" parent="MenuAndUI/UI/ToolPanel/Tools/MenusAndTools/DrawTools"] +editor/display_folded = true margin_top = 23.0 margin_right = 208.0 margin_bottom = 55.0 @@ -348,9 +345,9 @@ custom_constants/separation = 8 alignment = 1 [node name="ColorPickersCenter" type="CenterContainer" parent="MenuAndUI/UI/ToolPanel/Tools/ColorAndToolOptions"] -margin_top = 59.0 +margin_top = 35.0 margin_right = 208.0 -margin_bottom = 91.0 +margin_bottom = 67.0 [node name="ColorPickersHorizontal" type="HBoxContainer" parent="MenuAndUI/UI/ToolPanel/Tools/ColorAndToolOptions/ColorPickersCenter"] margin_left = 27.0 @@ -382,8 +379,6 @@ margin_right = 17.0 margin_bottom = 7.0 hint_tooltip = "COLORSWITCH_HT" mouse_default_cursor_shape = 2 -shortcut_in_tooltip = false -shortcut = SubResource( 3 ) texture_normal = ExtResource( 9 ) [node name="ColorDefaults" type="TextureButton" parent="MenuAndUI/UI/ToolPanel/Tools/ColorAndToolOptions/ColorPickersCenter/ColorPickersHorizontal/ColorButtonsCenter/ColorButtonsVertical"] @@ -407,12 +402,13 @@ flat = true color = Color( 1, 1, 1, 1 ) [node name="HSeparator" type="HSeparator" parent="MenuAndUI/UI/ToolPanel/Tools/ColorAndToolOptions"] -margin_top = 99.0 +margin_top = 75.0 margin_right = 208.0 -margin_bottom = 103.0 +margin_bottom = 79.0 [node name="LeftToolOptions" type="VBoxContainer" parent="MenuAndUI/UI/ToolPanel/Tools/ColorAndToolOptions"] -margin_top = 111.0 +editor/display_folded = true +margin_top = 87.0 margin_right = 208.0 margin_bottom = 242.0 @@ -425,7 +421,7 @@ align = 1 [node name="LeftIndicatorCheckbox" type="CheckBox" parent="MenuAndUI/UI/ToolPanel/Tools/ColorAndToolOptions/LeftToolOptions"] margin_top = 19.0 margin_right = 208.0 -margin_bottom = 35.0 +margin_bottom = 43.0 hint_tooltip = "LEFT_INDIC_HT" mouse_default_cursor_shape = 2 pressed = true @@ -433,9 +429,9 @@ text = "Left pixel indicator" [node name="LeftBrushType" type="HBoxContainer" parent="MenuAndUI/UI/ToolPanel/Tools/ColorAndToolOptions/LeftToolOptions"] editor/display_folded = true -margin_top = 39.0 +margin_top = 47.0 margin_right = 208.0 -margin_bottom = 71.0 +margin_bottom = 79.0 [node name="LeftBrushTypeButton" type="TextureButton" parent="MenuAndUI/UI/ToolPanel/Tools/ColorAndToolOptions/LeftToolOptions/LeftBrushType"] margin_right = 36.0 @@ -449,7 +445,7 @@ texture_normal = ExtResource( 11 ) [node name="BrushTexture" type="TextureRect" parent="MenuAndUI/UI/ToolPanel/Tools/ColorAndToolOptions/LeftToolOptions/LeftBrushType/LeftBrushTypeButton"] margin_right = 32.0 margin_bottom = 32.0 -texture = SubResource( 5 ) +texture = SubResource( 3 ) expand = true stretch_mode = 6 @@ -462,20 +458,20 @@ text = "Brush: Pixel" [node name="LeftBrushSize" type="HBoxContainer" parent="MenuAndUI/UI/ToolPanel/Tools/ColorAndToolOptions/LeftToolOptions"] editor/display_folded = true -margin_top = 75.0 +margin_top = 83.0 margin_right = 208.0 -margin_bottom = 92.0 +margin_bottom = 108.0 [node name="BrushSizeLabel" type="Label" parent="MenuAndUI/UI/ToolPanel/Tools/ColorAndToolOptions/LeftToolOptions/LeftBrushSize"] -margin_top = 1.0 +margin_top = 5.0 margin_right = 58.0 -margin_bottom = 16.0 +margin_bottom = 20.0 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_bottom = 17.0 +margin_right = 124.0 +margin_bottom = 25.0 mouse_default_cursor_shape = 2 min_value = 1.0 value = 1.0 @@ -560,9 +556,9 @@ step = 0.01 value = 0.1 [node name="LeftMirroring" type="VBoxContainer" parent="MenuAndUI/UI/ToolPanel/Tools/ColorAndToolOptions/LeftToolOptions"] -margin_top = 96.0 +margin_top = 112.0 margin_right = 208.0 -margin_bottom = 131.0 +margin_bottom = 155.0 [node name="Label" type="Label" parent="MenuAndUI/UI/ToolPanel/Tools/ColorAndToolOptions/LeftToolOptions/LeftMirroring"] margin_right = 208.0 @@ -572,19 +568,19 @@ text = "Mirroring" [node name="LeftMirrorButtons" type="HBoxContainer" parent="MenuAndUI/UI/ToolPanel/Tools/ColorAndToolOptions/LeftToolOptions/LeftMirroring"] margin_top = 19.0 margin_right = 208.0 -margin_bottom = 35.0 +margin_bottom = 43.0 [node name="LeftHorizontalMirroring" type="CheckBox" parent="MenuAndUI/UI/ToolPanel/Tools/ColorAndToolOptions/LeftToolOptions/LeftMirroring/LeftMirrorButtons"] -margin_right = 77.0 -margin_bottom = 16.0 +margin_right = 85.0 +margin_bottom = 24.0 hint_tooltip = "HORIZMIRROR_HT" mouse_default_cursor_shape = 2 text = "Horizontal" [node name="LeftVerticalMirroring" type="CheckBox" parent="MenuAndUI/UI/ToolPanel/Tools/ColorAndToolOptions/LeftToolOptions/LeftMirroring/LeftMirrorButtons"] -margin_left = 81.0 -margin_right = 142.0 -margin_bottom = 16.0 +margin_left = 89.0 +margin_right = 158.0 +margin_bottom = 24.0 hint_tooltip = "VERTMIRROR_HT" mouse_default_cursor_shape = 2 text = "Vertical" @@ -598,7 +594,7 @@ margin_bottom = 254.0 editor/display_folded = true margin_top = 262.0 margin_right = 208.0 -margin_bottom = 393.0 +margin_bottom = 417.0 [node name="RightLabel" type="Label" parent="MenuAndUI/UI/ToolPanel/Tools/ColorAndToolOptions/RightToolOptions"] margin_right = 208.0 @@ -609,16 +605,16 @@ align = 1 [node name="RightIndicatorCheckbox" type="CheckBox" parent="MenuAndUI/UI/ToolPanel/Tools/ColorAndToolOptions/RightToolOptions"] margin_top = 19.0 margin_right = 208.0 -margin_bottom = 35.0 +margin_bottom = 43.0 hint_tooltip = "RIGHT_INDIC_HT" mouse_default_cursor_shape = 2 text = "Right pixel indicator" [node name="RightBrushType" type="HBoxContainer" parent="MenuAndUI/UI/ToolPanel/Tools/ColorAndToolOptions/RightToolOptions"] editor/display_folded = true -margin_top = 39.0 +margin_top = 47.0 margin_right = 208.0 -margin_bottom = 71.0 +margin_bottom = 79.0 [node name="RightBrushTypeButton" type="TextureButton" parent="MenuAndUI/UI/ToolPanel/Tools/ColorAndToolOptions/RightToolOptions/RightBrushType"] margin_right = 36.0 @@ -632,7 +628,7 @@ texture_normal = ExtResource( 11 ) [node name="BrushTexture" type="TextureRect" parent="MenuAndUI/UI/ToolPanel/Tools/ColorAndToolOptions/RightToolOptions/RightBrushType/RightBrushTypeButton"] margin_right = 32.0 margin_bottom = 32.0 -texture = SubResource( 7 ) +texture = SubResource( 5 ) expand = true stretch_mode = 6 @@ -645,20 +641,20 @@ text = "Brush: Pixel" [node name="RightBrushSize" type="HBoxContainer" parent="MenuAndUI/UI/ToolPanel/Tools/ColorAndToolOptions/RightToolOptions"] editor/display_folded = true -margin_top = 75.0 +margin_top = 83.0 margin_right = 208.0 -margin_bottom = 92.0 +margin_bottom = 108.0 [node name="BrushSizeLabel" type="Label" parent="MenuAndUI/UI/ToolPanel/Tools/ColorAndToolOptions/RightToolOptions/RightBrushSize"] -margin_top = 1.0 +margin_top = 5.0 margin_right = 58.0 -margin_bottom = 16.0 +margin_bottom = 20.0 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_bottom = 17.0 +margin_right = 124.0 +margin_bottom = 25.0 mouse_default_cursor_shape = 2 min_value = 1.0 value = 1.0 @@ -744,9 +740,9 @@ value = 0.1 [node name="RightMirroring" type="VBoxContainer" parent="MenuAndUI/UI/ToolPanel/Tools/ColorAndToolOptions/RightToolOptions"] editor/display_folded = true -margin_top = 96.0 +margin_top = 112.0 margin_right = 208.0 -margin_bottom = 131.0 +margin_bottom = 155.0 [node name="Label" type="Label" parent="MenuAndUI/UI/ToolPanel/Tools/ColorAndToolOptions/RightToolOptions/RightMirroring"] margin_right = 208.0 @@ -756,24 +752,25 @@ text = "Mirroring" [node name="RightMirrorButtons" type="HBoxContainer" parent="MenuAndUI/UI/ToolPanel/Tools/ColorAndToolOptions/RightToolOptions/RightMirroring"] margin_top = 19.0 margin_right = 208.0 -margin_bottom = 35.0 +margin_bottom = 43.0 [node name="RightHorizontalMirroring" type="CheckBox" parent="MenuAndUI/UI/ToolPanel/Tools/ColorAndToolOptions/RightToolOptions/RightMirroring/RightMirrorButtons"] -margin_right = 77.0 -margin_bottom = 16.0 +margin_right = 85.0 +margin_bottom = 24.0 hint_tooltip = "HORIZMIRROR_HT" mouse_default_cursor_shape = 2 text = "Horizontal" [node name="RightVerticalMirroring" type="CheckBox" parent="MenuAndUI/UI/ToolPanel/Tools/ColorAndToolOptions/RightToolOptions/RightMirroring/RightMirrorButtons"] -margin_left = 81.0 -margin_right = 142.0 -margin_bottom = 16.0 +margin_left = 89.0 +margin_right = 158.0 +margin_bottom = 24.0 hint_tooltip = "VERTMIRROR_HT" 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 @@ -798,7 +795,6 @@ margin_right = 704.0 margin_bottom = 16.0 rect_min_size = Vector2( 0, 16 ) focus_mode = 0 -mouse_default_cursor_shape = 14 custom_styles/hover = ExtResource( 12 ) custom_styles/pressed = ExtResource( 12 ) custom_styles/focus = ExtResource( 12 ) @@ -819,7 +815,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 ) @@ -906,102 +901,102 @@ margin_left = 15.0 margin_top = 4.0 [node name="TimelineContainer" type="VBoxContainer" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer"] -margin_right = 570.0 -margin_bottom = 138.0 +margin_right = 562.0 +margin_bottom = 139.0 size_flags_horizontal = 3 [node name="AnimationButtons" type="HBoxContainer" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/TimelineContainer"] -margin_right = 570.0 -margin_bottom = 24.0 +margin_right = 562.0 +margin_bottom = 25.0 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_bottom = 19.0 +margin_top = 5.0 +margin_right = 234.0 +margin_bottom = 20.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_bottom = 24.0 +margin_left = 238.0 +margin_right = 378.0 +margin_bottom = 25.0 size_flags_horizontal = 2 [node name="FirstFrame" type="TextureButton" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/TimelineContainer/AnimationButtons/PlaybackButtons"] margin_right = 20.0 -margin_bottom = 24.0 +margin_bottom = 25.0 hint_tooltip = "FIRSTFRAME_HT" mouse_default_cursor_shape = 2 shortcut_in_tooltip = false -shortcut = SubResource( 9 ) +shortcut = SubResource( 7 ) texture_normal = ExtResource( 19 ) [node name="PreviousFrame" type="TextureButton" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/TimelineContainer/AnimationButtons/PlaybackButtons"] margin_left = 24.0 margin_right = 44.0 -margin_bottom = 24.0 +margin_bottom = 25.0 hint_tooltip = "PREVIOUSFRAME_HT" mouse_default_cursor_shape = 2 shortcut_in_tooltip = false -shortcut = SubResource( 11 ) +shortcut = SubResource( 9 ) texture_normal = ExtResource( 20 ) [node name="PlayBackwards" type="TextureButton" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/TimelineContainer/AnimationButtons/PlaybackButtons"] margin_left = 48.0 margin_right = 68.0 -margin_bottom = 24.0 +margin_bottom = 25.0 hint_tooltip = "PLAYBACKWARDS_HT" mouse_default_cursor_shape = 2 toggle_mode = true shortcut_in_tooltip = false -shortcut = SubResource( 13 ) +shortcut = SubResource( 11 ) 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 margin_right = 92.0 -margin_bottom = 24.0 +margin_bottom = 25.0 hint_tooltip = "PLAYFORWARD_HT" mouse_default_cursor_shape = 2 size_flags_horizontal = 0 toggle_mode = true shortcut_in_tooltip = false -shortcut = SubResource( 15 ) +shortcut = SubResource( 13 ) 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 margin_right = 116.0 -margin_bottom = 24.0 +margin_bottom = 25.0 hint_tooltip = "NEXTFRAME_HT" mouse_default_cursor_shape = 2 shortcut_in_tooltip = false -shortcut = SubResource( 17 ) +shortcut = SubResource( 15 ) texture_normal = ExtResource( 24 ) [node name="LastFrame" type="TextureButton" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/TimelineContainer/AnimationButtons/PlaybackButtons"] margin_left = 120.0 margin_right = 140.0 -margin_bottom = 24.0 +margin_bottom = 25.0 hint_tooltip = "LASTFRAME_HT" mouse_default_cursor_shape = 2 shortcut_in_tooltip = false -shortcut = SubResource( 19 ) +shortcut = SubResource( 17 ) texture_normal = ExtResource( 25 ) [node name="LoopButtons" type="HBoxContainer" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/TimelineContainer/AnimationButtons"] -margin_left = 482.0 -margin_right = 570.0 -margin_bottom = 24.0 +margin_left = 476.0 +margin_right = 562.0 +margin_bottom = 25.0 size_flags_horizontal = 0 [node name="FPSValue" type="SpinBox" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/TimelineContainer/AnimationButtons/LoopButtons"] -margin_right = 64.0 -margin_bottom = 24.0 +margin_right = 62.0 +margin_bottom = 25.0 hint_tooltip = "FPS_HT" mouse_default_cursor_shape = 2 min_value = 0.1 @@ -1010,35 +1005,35 @@ value = 6.0 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_bottom = 24.0 +margin_left = 66.0 +margin_right = 86.0 +margin_bottom = 25.0 hint_tooltip = "No loop" mouse_default_cursor_shape = 2 texture_normal = ExtResource( 26 ) [node name="HSeparator" type="HSeparator" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/TimelineContainer"] -margin_top = 28.0 -margin_right = 570.0 -margin_bottom = 32.0 +margin_top = 29.0 +margin_right = 562.0 +margin_bottom = 33.0 [node name="TimelineSeconds" type="Control" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/TimelineContainer"] -margin_top = 36.0 -margin_right = 570.0 -margin_bottom = 52.0 +margin_top = 37.0 +margin_right = 562.0 +margin_bottom = 53.0 rect_min_size = Vector2( 0, 16 ) script = ExtResource( 27 ) [node name="HSeparator2" type="HSeparator" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/TimelineContainer"] -margin_top = 56.0 -margin_right = 570.0 -margin_bottom = 60.0 +margin_top = 57.0 +margin_right = 562.0 +margin_bottom = 61.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 = 100.0 +margin_top = 65.0 +margin_right = 562.0 +margin_bottom = 101.0 [node name="AddFrame" type="TextureButton" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/TimelineContainer/FrameAndButtonContainer"] margin_right = 36.0 @@ -1050,7 +1045,7 @@ texture_normal = ExtResource( 28 ) [node name="ScrollContainer" type="ScrollContainer" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/TimelineContainer/FrameAndButtonContainer"] margin_left = 40.0 -margin_right = 570.0 +margin_right = 562.0 margin_bottom = 36.0 size_flags_horizontal = 3 size_flags_vertical = 3 @@ -1059,56 +1054,56 @@ scroll_vertical_enabled = false [node name="FrameContainer" type="HBoxContainer" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/TimelineContainer/FrameAndButtonContainer/ScrollContainer"] [node name="VSeparator" type="VSeparator" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer"] -margin_left = 574.0 -margin_right = 578.0 -margin_bottom = 138.0 +margin_left = 566.0 +margin_right = 570.0 +margin_bottom = 139.0 [node name="OnionSkinningButtons" type="VBoxContainer" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer"] editor/display_folded = true -margin_left = 582.0 +margin_left = 574.0 margin_right = 681.0 -margin_bottom = 138.0 +margin_bottom = 139.0 [node name="OnionSkinning" type="Label" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/OnionSkinningButtons"] -margin_right = 99.0 +margin_right = 107.0 margin_bottom = 15.0 text = "Onion Skinning:" [node name="OnionSkinningPast" type="Label" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/OnionSkinningButtons"] margin_top = 19.0 -margin_right = 99.0 +margin_right = 107.0 margin_bottom = 34.0 text = "Past Frames" [node name="PastOnionSkinning" type="SpinBox" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/OnionSkinningButtons"] margin_top = 38.0 -margin_right = 99.0 -margin_bottom = 55.0 +margin_right = 107.0 +margin_bottom = 63.0 mouse_default_cursor_shape = 2 [node name="OnionSkinningFuture" type="Label" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/OnionSkinningButtons"] -margin_top = 59.0 -margin_right = 99.0 -margin_bottom = 74.0 +margin_top = 67.0 +margin_right = 107.0 +margin_bottom = 82.0 text = "Future Frames" [node name="FutureOnionSkinning" type="SpinBox" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/OnionSkinningButtons"] -margin_top = 78.0 -margin_right = 99.0 -margin_bottom = 95.0 +margin_top = 86.0 +margin_right = 107.0 +margin_bottom = 111.0 mouse_default_cursor_shape = 2 [node name="BlueRedMode" type="CheckBox" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer/OnionSkinningButtons"] -margin_top = 99.0 -margin_right = 99.0 -margin_bottom = 115.0 +margin_top = 115.0 +margin_right = 107.0 +margin_bottom = 139.0 mouse_default_cursor_shape = 2 text = "Blue-Red Mode" [node name="VSeparator2" type="VSeparator" parent="MenuAndUI/UI/CanvasAndTimeline/AnimationTimeline/AnimationContainer"] margin_left = 685.0 margin_right = 689.0 -margin_bottom = 138.0 +margin_bottom = 139.0 [node name="LayerPanel" type="Panel" parent="MenuAndUI/UI"] margin_left = 928.0 @@ -1231,6 +1226,7 @@ texture_normal = ExtResource( 37 ) texture_disabled = ExtResource( 38 ) [node name="ScrollLayers" type="ScrollContainer" parent="MenuAndUI/UI/LayerPanel/LayersAndMisc/LayerVBoxContainer"] +editor/display_folded = true margin_top = 38.0 margin_right = 224.0 margin_bottom = 181.0 @@ -1343,7 +1339,7 @@ visible = false anchor_right = 1.0 anchor_bottom = 1.0 margin_left = 4.0 -margin_top = 32.0 +margin_top = 33.0 margin_right = -4.0 margin_bottom = -4.0 rect_min_size = Vector2( 0, 36 ) @@ -1376,7 +1372,7 @@ margin_bottom = 70.0 margin_left = 8.0 margin_top = 8.0 margin_right = 192.0 -margin_bottom = 34.0 +margin_bottom = 33.0 [node name="ImageSize" type="Label" parent="CreateNewImage/VBoxContainer"] margin_right = 184.0 @@ -1497,7 +1493,7 @@ margin_bottom = 114.0 margin_left = 8.0 margin_top = 8.0 margin_right = 192.0 -margin_bottom = 78.0 +margin_bottom = 77.0 [node name="ImageSize" type="Label" parent="ScaleImage/VBoxContainer"] margin_right = 184.0 @@ -1570,7 +1566,7 @@ anchor_right = 0.5 margin_left = -92.0 margin_top = 8.0 margin_right = 92.0 -margin_bottom = 34.0 +margin_bottom = 33.0 [node name="OptionsContainer" type="GridContainer" parent="PreferencesDialog/VBoxContainer"] margin_right = 195.0 @@ -1658,7 +1654,7 @@ script = ExtResource( 43 ) margin_left = 8.0 margin_top = 8.0 margin_right = 276.0 -margin_bottom = 150.0 +margin_bottom = 149.0 [node name="Pixelorama" type="Label" parent="AboutDialog/AboutUI"] margin_right = 268.0 @@ -1684,7 +1680,7 @@ margin_bottom = 77.0 editor/display_folded = true margin_left = 37.0 margin_right = 231.0 -margin_bottom = 23.0 +margin_bottom = 21.0 [node name="Website" type="Button" parent="AboutDialog/AboutUI/Links/LinkButtons"] margin_right = 55.0 diff --git a/Themes & Styles/Main Theme.tres b/Themes & Styles/Main Theme.tres index 3f3ee5d..c9cffbb 100644 --- a/Themes & Styles/Main Theme.tres +++ b/Themes & Styles/Main Theme.tres @@ -53,7 +53,7 @@ bg_color = Color( 0.6, 0.6, 0.6, 0 ) [sub_resource type="StyleBoxFlat" id=7] bg_color = Color( 0.6, 0.6, 0.6, 0 ) -[sub_resource type="StyleBoxFlat" id=12] +[sub_resource type="StyleBoxFlat" id=8] bg_color = Color( 0.321569, 0.321569, 0.321569, 1 ) border_width_left = 8 border_width_top = 1 @@ -66,7 +66,7 @@ corner_radius_bottom_right = 4 corner_radius_bottom_left = 4 anti_aliasing = false -[sub_resource type="StyleBoxFlat" id=8] +[sub_resource type="StyleBoxFlat" id=9] bg_color = Color( 0.321569, 0.321569, 0.321569, 1 ) border_width_left = 5 border_width_top = 10 @@ -79,7 +79,7 @@ corner_radius_bottom_right = 4 corner_radius_bottom_left = 4 anti_aliasing = false -[sub_resource type="StyleBoxFlat" id=9] +[sub_resource type="StyleBoxFlat" id=10] bg_color = Color( 0.2, 0.2, 0.2, 1 ) border_width_left = 10 border_width_top = 6 @@ -87,7 +87,7 @@ border_width_right = 10 border_width_bottom = 8 border_color = Color( 0.2, 0.2, 0.2, 1 ) -[sub_resource type="StyleBoxFlat" id=10] +[sub_resource type="StyleBoxFlat" id=11] bg_color = Color( 0.145098, 0.145098, 0.164706, 1 ) border_width_left = 10 border_width_top = 6 @@ -95,7 +95,7 @@ border_width_right = 10 border_width_bottom = 8 border_color = Color( 0.145098, 0.145098, 0.164706, 1 ) -[sub_resource type="StyleBoxFlat" id=11] +[sub_resource type="StyleBoxFlat" id=12] bg_color = Color( 0.321569, 0.321569, 0.321569, 1 ) border_width_left = 10 border_width_top = 6 @@ -146,7 +146,7 @@ LineEdit/constants/minimum_spaces = 12 LineEdit/fonts/font = null LineEdit/icons/clear = null LineEdit/styles/focus = null -LineEdit/styles/normal = SubResource( 12 ) +LineEdit/styles/normal = SubResource( 8 ) LineEdit/styles/read_only = 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 ) @@ -163,8 +163,8 @@ TabContainer/icons/increment = null TabContainer/icons/increment_highlight = null TabContainer/icons/menu = null TabContainer/icons/menu_highlight = null -TabContainer/styles/panel = SubResource( 8 ) -TabContainer/styles/tab_bg = SubResource( 9 ) -TabContainer/styles/tab_disabled = SubResource( 10 ) -TabContainer/styles/tab_fg = SubResource( 11 ) +TabContainer/styles/panel = SubResource( 9 ) +TabContainer/styles/tab_bg = SubResource( 10 ) +TabContainer/styles/tab_disabled = SubResource( 11 ) +TabContainer/styles/tab_fg = SubResource( 12 ) VBoxContainer/constants/separation = 4 From 73830832cef3d1b35a0c985f2ea81f86f721adc0 Mon Sep 17 00:00:00 2001 From: CheetoHead Date: Mon, 16 Dec 2019 20:47:19 -0500 Subject: [PATCH 6/6] Update PaletteContainer.gd --- Scripts/PaletteContainer.gd | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Scripts/PaletteContainer.gd b/Scripts/PaletteContainer.gd index 7759f8c..096c350 100644 --- a/Scripts/PaletteContainer.gd +++ b/Scripts/PaletteContainer.gd @@ -115,12 +115,16 @@ func on_color_select(index : int) -> void: Global.update_right_custom_brush() func _load_palettes() -> void: + var file := File.new() var dir := Directory.new() if not dir.dir_exists("user://palettes"): dir.make_dir("user://palettes"); - dir.make_dir("user://custom/palettes") + if not dir.dir_exists("user://palettes/custom"): + dir.make_dir("user://palettes/custom") + if not file.file_exists("user://palettes/default_palette.json"): dir.copy("res://Assets/Graphics/Palette/default_palette.json","user://palettes/default_palette.json"); + if not file.file_exists("user://palettes/bubblegum16.json"): dir.copy("res://Assets/Graphics/Palette/bubblegum16.json","user://palettes/bubblegum16.json"); var palette_files : Array = get_palette_files("user://palettes")