saumwacht-godot/tools/arbeiter_review.gd
Martin Stickelbroeck c2b447610c Baseline: Saumwacht 0.15.0 (Phase 20A) vor dem Umbau zu Champions of Luneraria
Unveränderter Ausgangsstand inklusive Masterprompt und Konzeptbildern
unter assets/. .godot/ und docs/screenshots/ bleiben laut .gitignore
unversioniert; letztere sind unter ../backups gesichert.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 20:00:36 +02:00

32 lines
1.3 KiB
GDScript

extends Node
## Real in-game inspector captures for the Funkenleser work clips.
var main: Node3D
var captures := "res://docs/screenshots/phase12"
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("worker")
var studio: Control = main.hud.model_inspector
studio._rotate = false
studio._clip_paused = true
studio._turntable.rotation.y = -.1
await shot("arbeiter-front")
studio._turntable.rotation.y = PI
await shot("arbeiter-back")
studio._turntable.rotation.y = -.1
for clip: String in ["walk","strike","pickup","deposit","return","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 (.80 if clip == "strike" else (1.2 if clip == "death" else .55))
await shot("pose-"+clip)
print("ARBEITER_REVIEW_PASS")
await Soundscape.quit_game()