Randoloot/tests/menu_options_preview.gd
2026-10-27 22:20:01 +01:00

84 lines
3.1 KiB
GDScript

extends Node
func _ready() -> void:
run.call_deferred()
func run() -> void:
GameSettings.resolution = Vector2i(1280,720)
GameState.start_new_run()
var fixture: Node = load("res://scenes/game/game.tscn").instantiate()
get_tree().root.add_child(fixture)
get_tree().current_scene = fixture
await get_tree().process_frame
await get_tree().process_frame
GameState.captain.level = 12
GameState.captain.credits = 12540
GameState.system_level = 8
GameState.save_named_game("Szlak Oriona","slot_preview_orion")
GameState.system_level = 14
GameState.captain.level = 19
GameState.save_named_game("Przed wielkim skokiem","slot_preview_jump")
fixture.free()
for code in GameSettings.LOCALES:
GameSettings.locale = code
GameSettings.apply()
var menu: Control = load("res://scenes/ui/main_menu.tscn").instantiate()
get_tree().root.add_child(menu)
get_tree().current_scene = menu
await get_tree().process_frame
await RenderingServer.frame_post_draw
get_viewport().get_texture().get_image().save_png("res://artifacts/menu_"+code+".png")
menu._open_options()
await get_tree().process_frame
await RenderingServer.frame_post_draw
get_viewport().get_texture().get_image().save_png("res://artifacts/options_"+code+".png")
menu._modal._close()
await get_tree().process_frame
menu._show_save()
await get_tree().process_frame
await RenderingServer.frame_post_draw
get_viewport().get_texture().get_image().save_png("res://artifacts/load_"+code+".png")
assert(absf(menu._modal.panel.position.x+menu._modal.panel.size.x*menu._modal.panel.scale.x*0.5-get_viewport().get_visible_rect().size.x*0.5) < 1)
if code == "pl":
menu._modal._close()
await get_tree().process_frame
menu._guide.open()
await RenderingServer.frame_post_draw
get_viewport().get_texture().get_image().save_png("res://artifacts/menu_guide_pl.png")
menu._guide.close()
menu._start_game()
await get_tree().create_timer(0.4).timeout
await RenderingServer.frame_post_draw
get_viewport().get_texture().get_image().save_png("res://artifacts/menu_hangar_pl.png")
menu.free()
GameSettings.locale = "en"
GameSettings.apply()
GameState.start_new_run()
var game: Node = load("res://scenes/game/game.tscn").instantiate()
get_tree().root.add_child(game)
get_tree().current_scene = game
await get_tree().process_frame
await get_tree().process_frame
var session: Node = game.get_node("SessionMenu")
session._open()
await get_tree().process_frame
await RenderingServer.frame_post_draw
get_viewport().get_texture().get_image().save_png("res://artifacts/session_menu_en.png")
session._open_options()
await get_tree().process_frame
await RenderingServer.frame_post_draw
get_viewport().get_texture().get_image().save_png("res://artifacts/session_options_en.png")
session._options._close()
await get_tree().process_frame
session._open_save_browser()
await get_tree().process_frame
await RenderingServer.frame_post_draw
get_viewport().get_texture().get_image().save_png("res://artifacts/named_save_en.png")
session._options._close()
await get_tree().process_frame
session._close()
game.queue_free()
await get_tree().process_frame
print("MENU_OPTIONS_PREVIEW: PASS")
get_tree().quit()