feat(audio): add tap handler and SFX to RoomChest

Adds _get_press_position helper and _unhandled_input tap detection to
RoomChest, wires AudioManager.play_sfx calls for chest_tap and
item_spawn events. Guards AudioManager audio load calls with Dummy
driver check so headless unit tests stay green.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Steven Wroblewski
2026-05-10 20:18:16 +02:00
parent bad2fbe65f
commit a220b641ca
3 changed files with 44 additions and 0 deletions
+18
View File
@@ -83,3 +83,21 @@ func test_receive_item_decrements_spawned_count() -> void:
var item: HoldableItem = chest.get_spawned_item(0)
chest.receive_item(item)
assert_eq(chest.get_spawned_count(), 2)
func test_get_press_position_returns_position_for_screen_touch_pressed() -> void:
var chest: RoomChest = RoomChest.new()
add_child_autofree(chest)
var event: InputEventScreenTouch = InputEventScreenTouch.new()
event.pressed = true
event.position = Vector2(100.0, 200.0)
assert_eq(chest._get_press_position(event), Vector2(100.0, 200.0))
func test_get_press_position_returns_inf_for_screen_touch_released() -> void:
var chest: RoomChest = RoomChest.new()
add_child_autofree(chest)
var event: InputEventScreenTouch = InputEventScreenTouch.new()
event.pressed = false
event.position = Vector2(100.0, 200.0)
assert_eq(chest._get_press_position(event), Vector2.INF)