mirror of
https://github.com/Orama-Interactive/Pixelorama.git
synced 2025-02-21 13:03:13 +00:00
Methods in ExportDialog.gd now use static typing
Also fixed the theme for Popups, and an issue with cel opacity (that was my fault)
This commit is contained in:
parent
910740a4c8
commit
d858be72c3
2 changed files with 32 additions and 30 deletions
|
@ -265,8 +265,8 @@ window_title = "Open a Directory"
|
||||||
resizable = true
|
resizable = true
|
||||||
mode = 2
|
mode = 2
|
||||||
access = 2
|
access = 2
|
||||||
current_dir = "/home/novhack/Pixelorama"
|
current_dir = "C:/Users/Overloaded/Dropbox/Orama Founding Members/εταιρικα αρχεια/Godot Projects/Pixelorama"
|
||||||
current_path = "/home/novhack/Pixelorama/"
|
current_path = "C:/Users/Overloaded/Dropbox/Orama Founding Members/εταιρικα αρχεια/Godot Projects/Pixelorama/"
|
||||||
|
|
||||||
[node name="PathValidationAlert" type="AcceptDialog" parent="Popups"]
|
[node name="PathValidationAlert" type="AcceptDialog" parent="Popups"]
|
||||||
margin_left = 8.0
|
margin_left = 8.0
|
||||||
|
|
|
@ -47,15 +47,14 @@ var exported_file_format : String
|
||||||
signal resume_export_function()
|
signal resume_export_function()
|
||||||
var stop_export = false
|
var stop_export = false
|
||||||
|
|
||||||
func _ready():
|
func _ready() -> void:
|
||||||
$VBoxContainer/Tabs.add_tab("Frame")
|
$VBoxContainer/Tabs.add_tab("Frame")
|
||||||
$VBoxContainer/Tabs.add_tab("Spritesheet")
|
$VBoxContainer/Tabs.add_tab("Spritesheet")
|
||||||
$VBoxContainer/Tabs.add_tab("Animation")
|
$VBoxContainer/Tabs.add_tab("Animation")
|
||||||
add_button("Cancel", false, "cancel")
|
add_button("Cancel", false, "cancel")
|
||||||
$Popups/FileExistsAlert.add_button("Cancel Export", false, "cancel")
|
$Popups/FileExistsAlert.add_button("Cancel Export", false, "cancel")
|
||||||
|
|
||||||
|
func show_tab() -> void:
|
||||||
func show_tab():
|
|
||||||
$VBoxContainer/FrameOptions.hide()
|
$VBoxContainer/FrameOptions.hide()
|
||||||
$VBoxContainer/SpritesheetOptions.hide()
|
$VBoxContainer/SpritesheetOptions.hide()
|
||||||
$VBoxContainer/AnimationOptions.hide()
|
$VBoxContainer/AnimationOptions.hide()
|
||||||
|
@ -165,7 +164,7 @@ func set_preview() -> void:
|
||||||
add_preview(processed_images[i], i + 1)
|
add_preview(processed_images[i], i + 1)
|
||||||
|
|
||||||
|
|
||||||
func add_preview(image: Image, canvas_number: int = -1):
|
func add_preview(image: Image, canvas_number: int = -1) -> void:
|
||||||
var container = VBoxContainer.new()
|
var container = VBoxContainer.new()
|
||||||
container.size_flags_horizontal = SIZE_EXPAND_FILL
|
container.size_flags_horizontal = SIZE_EXPAND_FILL
|
||||||
container.size_flags_vertical = SIZE_EXPAND_FILL
|
container.size_flags_vertical = SIZE_EXPAND_FILL
|
||||||
|
@ -190,12 +189,12 @@ func add_preview(image: Image, canvas_number: int = -1):
|
||||||
$VBoxContainer/PreviewScroll/Previews.add_child(container)
|
$VBoxContainer/PreviewScroll/Previews.add_child(container)
|
||||||
|
|
||||||
|
|
||||||
func remove_previews():
|
func remove_previews() -> void:
|
||||||
for child in $VBoxContainer/PreviewScroll/Previews.get_children():
|
for child in $VBoxContainer/PreviewScroll/Previews.get_children():
|
||||||
child.queue_free()
|
child.queue_free()
|
||||||
|
|
||||||
|
|
||||||
func export_processed_images(ignore_overwrites: bool) -> void:
|
func export_processed_images(ignore_overwrites : bool) -> void:
|
||||||
# Stop export if directory path or file name are not valid
|
# Stop export if directory path or file name are not valid
|
||||||
var dir = Directory.new()
|
var dir = Directory.new()
|
||||||
if not dir.dir_exists(directory_path) or not file_name.is_valid_filename():
|
if not dir.dir_exists(directory_path) or not file_name.is_valid_filename():
|
||||||
|
@ -239,7 +238,7 @@ func export_processed_images(ignore_overwrites: bool) -> void:
|
||||||
|
|
||||||
|
|
||||||
# Blends canvas layers into passed image starting from the origin position
|
# Blends canvas layers into passed image starting from the origin position
|
||||||
func blend_layers(image: Image, canvas: Canvas, origin: Vector2 = Vector2(0, 0)):
|
func blend_layers(image: Image, canvas: Canvas, origin: Vector2 = Vector2(0, 0)) -> void:
|
||||||
image.lock()
|
image.lock()
|
||||||
var layer_i := 0
|
var layer_i := 0
|
||||||
for layer in canvas.layers:
|
for layer in canvas.layers:
|
||||||
|
@ -250,14 +249,14 @@ func blend_layers(image: Image, canvas: Canvas, origin: Vector2 = Vector2(0, 0))
|
||||||
for xx in layer_image.get_size().x:
|
for xx in layer_image.get_size().x:
|
||||||
for yy in layer_image.get_size().y:
|
for yy in layer_image.get_size().y:
|
||||||
var pixel_color := layer_image.get_pixel(xx, yy)
|
var pixel_color := layer_image.get_pixel(xx, yy)
|
||||||
var alpha : float = pixel_color.a * layer[4]
|
var alpha : float = pixel_color.a * layer[2]
|
||||||
layer_image.set_pixel(xx, yy, Color(pixel_color.r, pixel_color.g, pixel_color.b, alpha))
|
layer_image.set_pixel(xx, yy, Color(pixel_color.r, pixel_color.g, pixel_color.b, alpha))
|
||||||
canvas.blend_rect(image, layer_image, Rect2(canvas.position, canvas.size), origin)
|
canvas.blend_rect(image, layer_image, Rect2(canvas.position, canvas.size), origin)
|
||||||
layer_i += 1
|
layer_i += 1
|
||||||
image.unlock()
|
image.unlock()
|
||||||
|
|
||||||
|
|
||||||
func scale_processed_images():
|
func scale_processed_images() -> void:
|
||||||
for processed_image in processed_images:
|
for processed_image in processed_images:
|
||||||
if resize != 100:
|
if resize != 100:
|
||||||
processed_image.unlock()
|
processed_image.unlock()
|
||||||
|
@ -277,7 +276,7 @@ func frames_divided_by_spritesheet_lines() -> int:
|
||||||
return int(ceil(Global.canvases.size() / float(lines_count)))
|
return int(ceil(Global.canvases.size() / float(lines_count)))
|
||||||
|
|
||||||
|
|
||||||
func store_export_settings():
|
func store_export_settings() -> void:
|
||||||
exported_tab = current_tab
|
exported_tab = current_tab
|
||||||
exported_frame_number = frame_number
|
exported_frame_number = frame_number
|
||||||
exported_orientation = orientation
|
exported_orientation = orientation
|
||||||
|
@ -290,7 +289,7 @@ func store_export_settings():
|
||||||
exported_file_format = file_format
|
exported_file_format = file_format
|
||||||
|
|
||||||
# Fill the dialog with previous export settings
|
# Fill the dialog with previous export settings
|
||||||
func restore_previous_export_settings():
|
func restore_previous_export_settings() -> void:
|
||||||
current_tab = exported_tab
|
current_tab = exported_tab
|
||||||
frame_number = exported_frame_number if exported_frame_number <= Global.canvases.size() else Global.canvases.size()
|
frame_number = exported_frame_number if exported_frame_number <= Global.canvases.size() else Global.canvases.size()
|
||||||
orientation = exported_orientation
|
orientation = exported_orientation
|
||||||
|
@ -303,7 +302,7 @@ func restore_previous_export_settings():
|
||||||
file_format = exported_file_format
|
file_format = exported_file_format
|
||||||
|
|
||||||
|
|
||||||
func _on_ExportDialog_about_to_show():
|
func _on_ExportDialog_about_to_show() -> void:
|
||||||
# If export already occured - fill the dialog with previous export settings
|
# If export already occured - fill the dialog with previous export settings
|
||||||
if was_exported:
|
if was_exported:
|
||||||
restore_previous_export_settings()
|
restore_previous_export_settings()
|
||||||
|
@ -319,19 +318,22 @@ func _on_ExportDialog_about_to_show():
|
||||||
$VBoxContainer/File/FileFormat.text = file_format
|
$VBoxContainer/File/FileFormat.text = file_format
|
||||||
show_tab()
|
show_tab()
|
||||||
|
|
||||||
|
for child in $Popups.get_children(): # Set the theme for the popups
|
||||||
|
child.theme = Global.control.theme
|
||||||
|
|
||||||
func _on_Tabs_tab_clicked(tab):
|
|
||||||
|
func _on_Tabs_tab_clicked(tab : int) -> void:
|
||||||
current_tab = tab
|
current_tab = tab
|
||||||
show_tab()
|
show_tab()
|
||||||
|
|
||||||
|
|
||||||
func _on_Frame_value_changed(value: float):
|
func _on_Frame_value_changed(value: float) -> void:
|
||||||
frame_number = value
|
frame_number = value
|
||||||
process_frame()
|
process_frame()
|
||||||
set_preview()
|
set_preview()
|
||||||
|
|
||||||
|
|
||||||
func _on_Orientation_item_selected(id):
|
func _on_Orientation_item_selected(id : int) -> void:
|
||||||
orientation = id
|
orientation = id
|
||||||
if orientation == Orientation.Rows:
|
if orientation == Orientation.Rows:
|
||||||
$VBoxContainer/SpritesheetOptions/Orientation/LinesCountLabel.text = "Columns:"
|
$VBoxContainer/SpritesheetOptions/Orientation/LinesCountLabel.text = "Columns:"
|
||||||
|
@ -342,13 +344,13 @@ func _on_Orientation_item_selected(id):
|
||||||
set_preview()
|
set_preview()
|
||||||
|
|
||||||
|
|
||||||
func _on_LinesCount_value_changed(value):
|
func _on_LinesCount_value_changed(value : float) -> void:
|
||||||
lines_count = value
|
lines_count = value
|
||||||
process_spritesheet()
|
process_spritesheet()
|
||||||
set_preview()
|
set_preview()
|
||||||
|
|
||||||
|
|
||||||
func _on_Resize_value_changed(value: float) -> void:
|
func _on_Resize_value_changed(value : float) -> void:
|
||||||
resize = value
|
resize = value
|
||||||
|
|
||||||
|
|
||||||
|
@ -356,48 +358,48 @@ func _on_Interpolation_item_selected(id: int) -> void:
|
||||||
interpolation = id
|
interpolation = id
|
||||||
|
|
||||||
|
|
||||||
func _on_ExportDialog_confirmed():
|
func _on_ExportDialog_confirmed() -> void:
|
||||||
export_processed_images(false)
|
export_processed_images(false)
|
||||||
|
|
||||||
|
|
||||||
func _on_ExportDialog_custom_action(action):
|
func _on_ExportDialog_custom_action(action : String) -> void:
|
||||||
if action == "cancel":
|
if action == "cancel":
|
||||||
hide()
|
hide()
|
||||||
|
|
||||||
|
|
||||||
func _on_PathButton_pressed():
|
func _on_PathButton_pressed() -> void:
|
||||||
$Popups/PathDialog.popup_centered()
|
$Popups/PathDialog.popup_centered()
|
||||||
|
|
||||||
|
|
||||||
func _on_PathLineEdit_text_changed(new_text):
|
func _on_PathLineEdit_text_changed(new_text : String) -> void:
|
||||||
directory_path = new_text
|
directory_path = new_text
|
||||||
|
|
||||||
|
|
||||||
func _on_FileLineEdit_text_changed(new_text):
|
func _on_FileLineEdit_text_changed(new_text : String) -> void:
|
||||||
file_name = new_text
|
file_name = new_text
|
||||||
|
|
||||||
|
|
||||||
func _on_FileDialog_dir_selected(dir: String):
|
func _on_FileDialog_dir_selected(dir : String) -> void:
|
||||||
$VBoxContainer/Path/PathLineEdit.text = dir
|
$VBoxContainer/Path/PathLineEdit.text = dir
|
||||||
directory_path = dir
|
directory_path = dir
|
||||||
|
|
||||||
|
|
||||||
func _on_FileFormat_item_selected(id):
|
func _on_FileFormat_item_selected(id : int) -> void:
|
||||||
match id:
|
match id:
|
||||||
0: # PNG
|
0: # PNG
|
||||||
file_format = '.png';
|
file_format = '.png'
|
||||||
1: # GIF
|
1: # GIF
|
||||||
file_format = '.gif';
|
file_format = '.gif'
|
||||||
|
|
||||||
|
|
||||||
func _on_FileExistsAlert_confirmed():
|
func _on_FileExistsAlert_confirmed() -> void:
|
||||||
# Overwrite existing file
|
# Overwrite existing file
|
||||||
$Popups/FileExistsAlert.dialog_text = file_exists_alert
|
$Popups/FileExistsAlert.dialog_text = file_exists_alert
|
||||||
stop_export = false
|
stop_export = false
|
||||||
emit_signal("resume_export_function")
|
emit_signal("resume_export_function")
|
||||||
|
|
||||||
|
|
||||||
func _on_FileExistsAlert_custom_action(action):
|
func _on_FileExistsAlert_custom_action(action : String) -> void:
|
||||||
if action == "cancel":
|
if action == "cancel":
|
||||||
# Cancel export
|
# Cancel export
|
||||||
$Popups/FileExistsAlert.dialog_text = file_exists_alert
|
$Popups/FileExistsAlert.dialog_text = file_exists_alert
|
||||||
|
|
Loading…
Add table
Reference in a new issue