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"]