Initial project sync

This commit is contained in:
wxm
2026-07-06 22:55:14 -07:00
commit 8cca00d0da
1066 changed files with 58585 additions and 0 deletions
+65
View File
@@ -0,0 +1,65 @@
extends SceneTree
var failures: Array[String] = []
func _init() -> void:
_run.call_deferred()
func _run() -> void:
var bus_script: Script = load("res://autoload/event_bus.gd")
_expect(bus_script != null, "EventBus script should load")
if bus_script != null:
var legacy_signal := StringName("rhythm" + "_action_requested")
var bus: Node = bus_script.new()
_expect_int(_signal_arg_count(bus, "judgement_made"), 3, "EventBus.judgement_made should expose quality, offset_ms, beat_index")
_expect(not bus.has_signal(legacy_signal), "EventBus should not expose the legacy rhythm action request signal")
bus.free()
var rhythm_script: Script = load("res://autoload/rhythm_manager.gd")
_expect(rhythm_script != null, "RhythmManager script should load")
if rhythm_script != null:
var legacy_method := StringName("judge" + "_action")
var rhythm: Node = rhythm_script.new()
_expect(not rhythm.has_method(legacy_method), "RhythmManager should not expose the legacy action judgement method")
_expect(_has_property(rhythm, "clock_volume_db"), "RhythmManager should expose clock_volume_db")
var rating: Dictionary = rhythm.call("judge", 0.0)
_expect(rating.has("nearest_beat"), "RhythmManager.judge should return nearest_beat")
_expect(typeof(rating.get("nearest_beat")) == TYPE_INT, "nearest_beat should be an int")
rhythm.free()
_finish()
func _signal_arg_count(node: Node, signal_name: StringName) -> int:
for signal_info: Dictionary in node.get_signal_list():
if StringName(str(signal_info.get("name"))) == signal_name:
return (signal_info.get("args") as Array).size()
return -1
func _has_property(object: Object, property_name: StringName) -> bool:
for property: Dictionary in object.get_property_list():
if StringName(str(property.get("name"))) == property_name:
return true
return false
func _expect(condition: bool, label: String) -> void:
if not condition:
failures.append(label)
func _expect_int(actual: int, expected: int, label: String) -> void:
if actual != expected:
failures.append("%s: expected %d, got %d" % [label, expected, actual])
func _finish() -> void:
if failures.is_empty():
print("PASS judgement payload")
quit(0)
else:
for failure: String in failures:
push_error(failure)
quit(1)