Added an option to save animations as a single column spritesheet

This commit is contained in:
Rodz Labs 2021-10-16 17:59:51 +02:00
parent 829ea55724
commit bd4bce74ef
2 changed files with 15 additions and 4 deletions

View File

@ -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)

View File

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