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:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user