--- scripts\restaurant\restaurant.gd +++ scripts\restaurant\restaurant.gd @@ -4265,18 +4265,21 @@ # --- Sortie de file --------------------------------------------------------- func _seat_from_queue() -> void: - # Sans de quoi cuisiner, faire entrer la file ne produit qu'un défilé de - # clients qui franchissent la porte et repartent aussitôt, un par un. - if not _can_accept_arrivals(): + # Guests wait outside until furniture positions are final. + if build_mode_is_active(): return while not queue.is_empty(): + var next_customer := _live(queue[0]) as Customer + if next_customer == null or next_customer.state != Customer.State.QUEUED: + queue.remove_at(0) + continue + # Use the doorway rule for this guest: exclusive visits do not require + # an open dining room or food, while ordinary arrivals still do. + if not can_customer_cross_door(next_customer): + return var table_index := _find_open_table() if table_index < 0: return - var next_customer: Customer = queue[0] - if not is_instance_valid(next_customer) or next_customer.state != Customer.State.QUEUED: - queue.remove_at(0) - continue queue.remove_at(0) var table: Dictionary = tables[table_index] table.customers[0] = next_customer