mirror of
https://github.com/tonytins/CozyPixelStudio.git
synced 2025-06-25 15:54:44 -04:00
Palettes can now be created from the colors of the selected sprite
This commit is contained in:
parent
5df25c21c6
commit
5ce061d793
4 changed files with 29 additions and 1 deletions
|
@ -87,6 +87,8 @@ func add_palette_menu_id_pressed(id : int) -> void:
|
|||
on_new_empty_palette()
|
||||
1: # Import Palette
|
||||
on_import_palette()
|
||||
2: # Create Palette From Current Sprite
|
||||
create_palette_from_sprite()
|
||||
|
||||
|
||||
func create_new_palette(name : String, _from_palette : Palette) -> String: # Returns empty string, else error string
|
||||
|
@ -149,6 +151,28 @@ func on_edit_palette() -> void:
|
|||
Global.edit_palette_popup.open(current_palette)
|
||||
|
||||
|
||||
func create_palette_from_sprite() -> void:
|
||||
var current_project : Project = Global.current_project
|
||||
var new_palette_name : String = current_project.name
|
||||
var result : String = create_new_palette(new_palette_name, null)
|
||||
if not result.empty():
|
||||
Global.error_dialog.set_text(result)
|
||||
Global.error_dialog.popup_centered()
|
||||
Global.dialog_open(true)
|
||||
else:
|
||||
var current_cel : Cel = current_project.frames[current_project.current_frame].cels[current_project.current_layer]
|
||||
var cel_image : Image = current_cel.image
|
||||
var palette : Palette = Global.palettes[current_palette]
|
||||
for x in cel_image.get_size().x:
|
||||
for y in cel_image.get_size().y:
|
||||
var color : Color = cel_image.get_pixel(x, y)
|
||||
if color.a > 0 and !palette.has_color(color):
|
||||
palette.add_color(color)
|
||||
|
||||
save_palette(current_palette, current_palette + ".json")
|
||||
_display_palette(palette)
|
||||
|
||||
|
||||
func _on_PaletteOptionButton_item_selected(ID : int) -> void:
|
||||
var palette_name = Global.palette_option_button.get_item_metadata(ID)
|
||||
if palette_name != null:
|
||||
|
|
|
@ -58,7 +58,7 @@ mouse_default_cursor_shape = 2
|
|||
[node name="PopupMenu" type="PopupMenu" parent="PaletteVBoxContainer/CenterContainer/PaletteButtons/AddPalette"]
|
||||
margin_right = 115.0
|
||||
margin_bottom = 54.0
|
||||
items = [ "New Empty Palette", null, 0, false, false, 0, 0, null, "", false, "Import Palette", null, 0, false, false, 1, 0, null, "", false ]
|
||||
items = [ "New Empty Palette", null, 0, false, false, 0, 0, null, "", false, "Import Palette", null, 0, false, false, 1, 0, null, "", false, "Create Palette From Current Sprite", null, 0, false, false, 2, 0, null, "", false ]
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue