Files
Cozypaw-Hospital/scripts/systems/room_navigator.gd
Steven Wroblewski 13db45bb04 feat(core): implement room navigation, character states, save/load and settings menu
- RoomNavigator autoload: smooth camera pan between floors
- Floor1 and Floor2 placeholder rooms with elevator buttons
- CharacterData Resource with State enum (HEALTHY/SICK/SLEEPING/TIRED)
- Character visual state feedback via ColorRect color
- Main scene loads saved state on startup
- SettingsMenu with music/sfx sliders and game reset
- HUD settings button to open SettingsMenu

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 12:17:56 +02:00

31 lines
801 B
GDScript

## RoomNavigator — autoload that moves the Camera2D smoothly between hospital floors.
extends Node
signal room_changed(floor_index: int)
const FLOOR_HEIGHT: float = 720.0
const CAMERA_TWEEN_DURATION: float = 0.6
var _current_floor: int = 0
var _camera: Camera2D
func initialize(camera: Camera2D) -> void:
_camera = camera
func go_to_floor(floor_index: int) -> void:
if _camera == null or floor_index == _current_floor:
return
_current_floor = floor_index
var target_y: float = floor_index * -FLOOR_HEIGHT
var tween: Tween = _camera.create_tween()
tween.set_ease(Tween.EASE_IN_OUT)
tween.set_trans(Tween.TRANS_SINE)
tween.tween_property(_camera, "position:y", target_y, CAMERA_TWEEN_DURATION)
room_changed.emit(floor_index)
func get_current_floor() -> int:
return _current_floor