extends SceneTree ## Cattura la stanza con le otto finestre: le quattro pareti dal centro, una vista ## d'angolo e un ingresso in corso dalla finestra effettivamente scelta dallo spawn. func _initialize() -> void: call_deferred("run_test") func run_test() -> void: var world = load("res://scenes/main.tscn").instantiate() root.add_child(world) world.player.hp = 100000 world.player.set_physics_process(false) await create_timer(0.35).timeout # la prima ondata parte in _ready var chosen: int = world.last_window var window: Dictionary = world.room.windows[chosen] # Ingresso in corso: il tween dura 1,2 s salendo verso il davanzale. world.player.position = Vector3(window.center) + Vector3(window.normal) * -0.5 + Vector3(0, 0.1, 0) world.player.look_at(Vector3(window.center) + Vector3(0, 1.8, 0)) await create_timer(0.7).timeout await RenderingServer.frame_post_draw root.get_texture().get_image().save_png("/tmp/zombie-windows-ingresso.png") print("SHOT ingresso: finestra %d da %s" % [chosen, window.center]) # Le quattro pareti dal centro. var views := [ ["nord", Vector3(0, 2.2, -9)], ["est", Vector3(9, 2.2, 0)], ["sud", Vector3(0, 2.2, 9)], ["ovest", Vector3(-9, 2.2, 0)], ] for view in views: world.player.position = Vector3(0, 0.1, 0) world.player.look_at(view[1]) await create_timer(0.4).timeout await RenderingServer.frame_post_draw root.get_texture().get_image().save_png("/tmp/zombie-windows-%s.png" % view[0]) # Vista d'angolo: due pareti insieme. world.player.position = Vector3(-7, 0.1, -7) world.player.look_at(Vector3(6, 1.5, 6)) await create_timer(0.4).timeout await RenderingServer.frame_post_draw root.get_texture().get_image().save_png("/tmp/zombie-windows-angolo.png") print("SHOT: immagini in /tmp/zombie-windows-*.png") world.queue_free() await process_frame quit()