feat(nav): wire RoomNavigator to GameState.set_current_room and add room name lookup
This commit is contained in:
@@ -74,13 +74,13 @@ func test_go_to_floor_does_not_emit_if_already_on_floor_room_zero() -> void:
|
||||
assert_signal_not_emitted(_nav, "room_changed")
|
||||
|
||||
|
||||
func test_initialize_with_null_camera_prevents_state_update() -> void:
|
||||
func test_initialize_with_null_camera_still_updates_state() -> void:
|
||||
var nav: Node = RoomNavigatorScript.new()
|
||||
add_child_autofree(nav)
|
||||
nav.initialize(null)
|
||||
nav.go_to_room(1, 2)
|
||||
assert_eq(nav.get_current_floor(), 0)
|
||||
assert_eq(nav.get_current_room(), 0)
|
||||
assert_eq(nav.get_current_floor(), 1)
|
||||
assert_eq(nav.get_current_room(), 2)
|
||||
|
||||
|
||||
func test_multiple_room_changes_update_state() -> void:
|
||||
@@ -138,3 +138,40 @@ func test_go_to_room_after_home_clears_is_at_home() -> void:
|
||||
_nav.go_to_home()
|
||||
_nav.go_to_room(0, 0)
|
||||
assert_false(_nav.is_at_home())
|
||||
|
||||
|
||||
func test_room_names_dict_has_eleven_entries() -> void:
|
||||
assert_eq(RoomNavigator._ROOM_NAMES.size(), 11)
|
||||
|
||||
|
||||
func test_get_room_name_floor0_room0_is_reception() -> void:
|
||||
assert_eq(RoomNavigator.get_room_name(0, 0), "reception")
|
||||
|
||||
|
||||
func test_get_room_name_floor0_room3_is_emergency() -> void:
|
||||
assert_eq(RoomNavigator.get_room_name(0, 3), "emergency")
|
||||
|
||||
|
||||
func test_get_room_name_floor1_room2_is_lab() -> void:
|
||||
assert_eq(RoomNavigator.get_room_name(1, 2), "lab")
|
||||
|
||||
|
||||
func test_get_room_name_floor2_room1_is_delivery_room() -> void:
|
||||
assert_eq(RoomNavigator.get_room_name(2, 1), "delivery_room")
|
||||
|
||||
|
||||
func test_get_room_name_unknown_returns_empty_string() -> void:
|
||||
assert_eq(RoomNavigator.get_room_name(99, 0), "")
|
||||
assert_eq(RoomNavigator.get_room_name(0, 99), "")
|
||||
|
||||
|
||||
func test_go_to_room_by_name_garden_party_sets_is_at_home() -> void:
|
||||
RoomNavigator.go_to_room_by_name("garden_party")
|
||||
assert_true(RoomNavigator.is_at_home())
|
||||
RoomNavigator._is_at_home = false
|
||||
|
||||
|
||||
func test_go_to_room_by_name_unknown_is_noop() -> void:
|
||||
var floor_before: int = RoomNavigator.get_current_floor()
|
||||
RoomNavigator.go_to_room_by_name("nonexistent_room_xyz")
|
||||
assert_eq(RoomNavigator.get_current_floor(), floor_before)
|
||||
|
||||
Reference in New Issue
Block a user