Files

37 lines
1.4 KiB
GDScript

extends SceneTree
## Cattura il bidone acceso a fasi diverse di flicker e di scarto, per confrontare
## ombre, rimbalzo, nucleo, braci e glow. Lo spawn delle ondate viene bloccato e gli
## zombie congelati, altrimenti finiscono davanti all'obiettivo e falsano l'immagine.
func _initialize() -> void:
call_deferred("run_test")
func run_test() -> void:
var world = load("res://scenes/main.tscn").instantiate()
root.add_child(world)
world.spawning = true # impedisce l'avvio di nuove ondate durante le riprese
world.player.set_physics_process(false)
world.player.hp = 100000
var office = world.get_node("OfficeAtmosphere")
var rig = office.fire_rig
var shots := [
["basso", -1.0, 0.0, Vector3(-4, 0.35, 4)],
["alto", 1.0, 0.0, Vector3(-4, 0.35, 4)],
["alto-scarto", 1.0, 0.45, Vector3(-4, 0.35, 4)],
["insieme", 0.0, 0.2, Vector3(-4, 1.0, 4)],
]
for shot in shots:
for zombie in get_nodes_in_group("live_zombies"):
zombie.set_physics_process(false)
rig._pulse = shot[1]
rig._time = shot[2]
rig._apply()
world.player.position = Vector3(-1.6, 0.1, 2.9) if shot[0] != "insieme" else Vector3(0, 0.1, -0.5)
world.player.look_at(shot[3])
await create_timer(0.35).timeout
await RenderingServer.frame_post_draw
root.get_texture().get_image().save_png("/tmp/zombie-fire-%s.png" % shot[0])
print("SHOT: 4 immagini in /tmp/zombie-fire-*.png")
world.queue_free()
await process_frame
quit()