Save The Tree implementation and acceptance work in progress

Preserve production code, regression fixtures, audio assets and provenance, test infrastructure, and the original-completion plan and progress ledger. Final game and Windows acceptance remain pending; excluded local artifacts and native experiments are not part of this snapshot.
This commit is contained in:
Takeshi
2026-10-11 15:58:00 +09:00
parent 39f6068461
commit b84bade045
235 changed files with 495831 additions and 312 deletions
+6 -2
View File
@@ -1,5 +1,7 @@
extends SceneTree
const AudioTeardown := preload("res://tests/helpers/ui_audio_teardown.gd")
var _checks := 0
var _failures := 0
var _main: Control
@@ -35,7 +37,7 @@ func _run() -> void:
var report: Dictionary = _runtime.elevators.get_report()
_expect(report[&"shafts"].size() == 1, "completed paid lift registers one real car")
if report[&"shafts"].size() != 1:
_finish()
await _finish()
return
_shaft_id = report[&"shafts"][0][&"shaft_id"]
_module_id = report[&"shafts"][0][&"module_ids"][0]
@@ -81,7 +83,7 @@ func _run() -> void:
var image_value := root.get_texture().get_image()
DirAccess.make_dir_recursive_absolute(ProjectSettings.globalize_path("res://artifacts/transport"))
image_value.save_png("res://artifacts/transport/elevator-inspector.png")
_finish()
await _finish()
func _shaft() -> Dictionary:
for row: Dictionary in _runtime.elevators.get_report()[&"shafts"]:
@@ -91,6 +93,8 @@ func _shaft() -> Dictionary:
func _finish() -> void:
_clock.set_paused(true)
var teardown: Dictionary = await AudioTeardown.free_owner_and_wait(self, _main)
_expect(bool(teardown.get(&"passed", false)) and not bool(teardown.get(&"deadline_reached", true)), "owned audio references release before bounded teardown deadline with whole Runtime unchanged")
print("Elevator management UI: %d checks, %d failures" % [_checks, _failures])
quit(_failures)