extends Node ## Capture Funkenlanze review stills. Asserts the inspector shows g05 before each shot. var main: Node3D var captures := "res://docs/screenshots/phase18" func _ready() -> void: call_deferred("run") func shot(name: String) -> void: for n: int in range(8): await get_tree().process_frame await RenderingServer.frame_post_draw get_viewport().get_texture().get_image().save_png(captures + "/" + name + ".png") func run() -> void: get_window().size = Vector2i(1600, 1000) Soundscape.enabled = false WaveManager.set_physics_process(false) main = preload("res://scenes/main.tscn").instantiate() add_child(main) main.hud.model_inspector.show_model("g05") print("FUNKEN_MODEL: ", main.hud.model_inspector.model_id, " caption=", main.hud.model_inspector._caption.text, " path=", AssetLibrary._models.get("g05", {}).get("resource_path"), " tris=", AssetLibrary._models.get("g05", {}).get("triangles")) if main.hud.model_inspector.model_id != "g05": printerr("FUNKEN_REVIEW_FAIL: inspector shows ", main.hud.model_inspector.model_id, " instead of g05") await Soundscape.quit_game(1) return var studio: Control = main.hud.model_inspector studio._rotate = false studio._clip_paused = true studio._turntable.rotation.y = -.15 await shot("funken-front") studio._turntable.rotation.y = PI await shot("funken-back") studio._turntable.rotation.y = -.15 for clip: String in ["walk", "attack_a", "ability", "death"]: for i: int in range(studio._clip_selector.item_count): if studio._clip_selector.get_item_metadata(i) == clip: studio._clip_selector.select(i) studio._clip_time = .55 if clip == "walk" else (.9 if clip == "attack_a" else (1.0 if clip == "ability" else 1.2)) await shot("pose-" + clip) print("FUNKEN_REVIEW_PASS") await Soundscape.quit_game()