extends Node # Updated each frame from ObserverSnapshot data var current_snapshot: Dictionary = {} var player_position: Vector2 = Vector2.ZERO var visible_entities: Array = [] var fog_state: Dictionary = {} var hud_data: Dictionary = {} func apply_snapshot(snapshot: Dictionary) -> void: current_snapshot = snapshot # Parse player data if snapshot.has("player") and snapshot.player.has("position"): var pos = snapshot.player.position if pos is Array and pos.size() >= 2: player_position = Vector2(pos[0], pos[1]) else: push_warning("GameState: malformed player position in snapshot") # Parse entities if snapshot.has("entities"): visible_entities = snapshot.entities # Parse fog state if snapshot.has("fog"): fog_state = snapshot.fog # Parse HUD data if snapshot.has("hud"): hud_data = snapshot.hud