From bd4bce74eff29bbf7e15717e7ca6da1b505e5515 Mon Sep 17 00:00:00 2001 From: Rodz Labs Date: Sat, 16 Oct 2021 17:59:51 +0200 Subject: [PATCH] Added an option to save animations as a single column spritesheet --- .../windows/export_animation/export_animation.gd | 16 +++++++++++++--- .../export_animation/export_animation.tscn | 3 ++- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/material_maker/windows/export_animation/export_animation.gd b/material_maker/windows/export_animation/export_animation.gd index 6e346153..172dc623 100644 --- a/material_maker/windows/export_animation/export_animation.gd +++ b/material_maker/windows/export_animation/export_animation.gd @@ -90,7 +90,9 @@ func _on_Export_pressed(): var begin : float = value_begin.value var end : float = value_end.value var images : int = value_images.value - var spritesheet_lines : int = value_spritesheet.get_item_id(value_spritesheet.selected) + var spritesheet_lines : int = value_spritesheet.get_item_id(value_spritesheet.selected) + if spritesheet_lines > 500: + spritesheet_lines = 1000-spritesheet_lines var spritesheet_columns : int var renderer = mm_renderer.request(self) while renderer is GDScriptFunctionState: @@ -99,8 +101,12 @@ func _on_Export_pressed(): image_anim.material.set_shader_param("end", begin) var spritesheet : Image var filename_fmt - if spritesheet_lines > 0: - spritesheet_columns = (images-1)/spritesheet_lines+1 + if spritesheet_lines != 0: + if spritesheet_lines > 0: + spritesheet_columns = (images-1)/spritesheet_lines+1 + else: + spritesheet_columns = -spritesheet_lines + spritesheet_lines = (images-1)/spritesheet_columns+1 spritesheet = Image.new() spritesheet.create(size * spritesheet_columns, size * spritesheet_lines, false, Image.FORMAT_RGBA8) else: @@ -131,3 +137,7 @@ func _on_Export_pressed(): spritesheet.save_png(filename) image_anim.material.set_shader_param("begin", begin) image_anim.material.set_shader_param("end", end) + + +func _on_VBox_minimum_size_changed(): + rect_size = $VBox.rect_size+Vector2(4, 4) diff --git a/material_maker/windows/export_animation/export_animation.tscn b/material_maker/windows/export_animation/export_animation.tscn index dfcad8d3..2d52c067 100644 --- a/material_maker/windows/export_animation/export_animation.tscn +++ b/material_maker/windows/export_animation/export_animation.tscn @@ -211,7 +211,7 @@ margin_left = 550.0 margin_right = 638.0 margin_bottom = 24.0 text = "PNG files" -items = [ "PNG files", null, false, 0, null, "1 line spritesheet", null, false, 1, null, "2 lines spritesheet", null, false, 2, null, "4 lines spritesheet", null, false, 4, null ] +items = [ "PNG files", null, false, 0, null, "1 line spritesheet", null, false, 1, null, "2 lines spritesheet", null, false, 2, null, "4 lines spritesheet", null, false, 4, null, "1 column spritesheet", null, false, 1001, null ] selected = 0 [node name="Images" type="MarginContainer" parent="VBox"] @@ -313,6 +313,7 @@ rect_min_size = Vector2( 80, 0 ) text = "Close" [connection signal="popup_hide" from="." to="." method="queue_free"] +[connection signal="minimum_size_changed" from="VBox" to="." method="_on_VBox_minimum_size_changed"] [connection signal="value_changed" from="VBox/Settings/Begin" to="." method="_on_Begin_value_changed"] [connection signal="value_changed" from="VBox/Settings/End" to="." method="_on_End_value_changed"] [connection signal="timeout" from="VBox/Images/HBox/Animated/Timer" to="." method="_on_Timer_timeout"]