rimlike/scenes/ui
megaproxy 708080a022 Alerts: wire room_too_large, no_stockpile_accepts, bill_blocked
Three alert signals had no UI subscribers — gameplay failures vanished
silently. Now all three feed AlertsLog via translator handlers that
forward to the generic alert_added sink.

- EventBus: new no_stockpile_accepts(item_type, tile) and
  bill_blocked(recipe_label, reason, focus_tile) signals.
- HaulingProvider: per-item-type 30s cooldown; emits when find_best_for
  scan finishes with viable items but no destinations.
- CraftingProvider: per-(workbench, reason) 60s cooldown; emits at the
  skill_too_low and missing_ingredient continue sites. no_workbench
  reason declared for future use but not emitted (the iteration shape
  has no natural site for it).
- AlertsLog: connect + disconnect for all three signals using the same
  has_signal-guarded pattern; translator handlers convert to localized
  alert_added(severity, text, focus_tile).
- AlertsLog catch-up: room_too_large emits during World init, before
  this CanvasLayer mounts. _catch_up_room_too_large() in _ready scans
  World.rooms for rooms > ROOM_AUTOROOF_CAP and replays them, so the
  pre-built cabin's 24-tile-too-large warning lands in the log on every
  boot. Hauling/bill signals fire at runtime so they need no catch-up.

Verified runtime: cabin warning shows up in AlertsLog with severity
'warn' and focus_tile (45, 24) — the cabin top-left.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 13:16:25 +01:00
..
.gitkeep Phase 0 scaffold + asset audit findings 2026-05-10 20:09:11 +01:00
alerts_log.gd Alerts: wire room_too_large, no_stockpile_accepts, bill_blocked 2026-05-12 13:16:25 +01:00
alerts_log.gd.uid Phase 17: Touch UX (PawnDetail+BuildDrawer+WorkMatrix+AlertsLog+Settings) 2026-05-11 19:45:35 +01:00
build_drawer.gd PC controls: keyboard pan/zoom, Tab cycle, Escape stack, right-click deselect 2026-05-12 12:06:38 +01:00
build_drawer.gd.uid Phase 17: Touch UX (PawnDetail+BuildDrawer+WorkMatrix+AlertsLog+Settings) 2026-05-11 19:45:35 +01:00
load_menu.gd PC controls: keyboard pan/zoom, Tab cycle, Escape stack, right-click deselect 2026-05-12 12:06:38 +01:00
load_menu.gd.uid Phase 16: Save/load full coverage + autosave + UI 2026-05-11 19:24:59 +01:00
pawn_detail_panel.gd Phase 17: Touch UX (PawnDetail+BuildDrawer+WorkMatrix+AlertsLog+Settings) 2026-05-11 19:45:35 +01:00
pawn_detail_panel.gd.uid Phase 17: Touch UX (PawnDetail+BuildDrawer+WorkMatrix+AlertsLog+Settings) 2026-05-11 19:45:35 +01:00
resume_toast.gd Phase 16: Save/load full coverage + autosave + UI 2026-05-11 19:24:59 +01:00
resume_toast.gd.uid Phase 16: Save/load full coverage + autosave + UI 2026-05-11 19:24:59 +01:00
settings_menu.gd PC controls: keyboard pan/zoom, Tab cycle, Escape stack, right-click deselect 2026-05-12 12:06:38 +01:00
settings_menu.gd.uid Phase 17: Touch UX (PawnDetail+BuildDrawer+WorkMatrix+AlertsLog+Settings) 2026-05-11 19:45:35 +01:00
storyteller_banner.gd Phase 15: Storyteller (25 events, daily roll, banner+modal UI) 2026-05-11 19:01:35 +01:00
storyteller_banner.gd.uid Phase 15: Storyteller (25 events, daily roll, banner+modal UI) 2026-05-11 19:01:35 +01:00
storyteller_modal.gd PC controls: keyboard pan/zoom, Tab cycle, Escape stack, right-click deselect 2026-05-12 12:06:38 +01:00
storyteller_modal.gd.uid Phase 15: Storyteller (25 events, daily roll, banner+modal UI) 2026-05-11 19:01:35 +01:00
top_bar.gd Phase 17: Touch UX (PawnDetail+BuildDrawer+WorkMatrix+AlertsLog+Settings) 2026-05-11 19:45:35 +01:00
top_bar.gd.uid Phase 1 — 80² world, 6-layer TileMap, camera rig, tick loop, speed UI 2026-05-10 20:37:02 +01:00
top_bar.tscn Phase 16: Save/load full coverage + autosave + UI 2026-05-11 19:24:59 +01:00
work_priority_matrix.gd PC controls: keyboard pan/zoom, Tab cycle, Escape stack, right-click deselect 2026-05-12 12:06:38 +01:00
work_priority_matrix.gd.uid Phase 17: Touch UX (PawnDetail+BuildDrawer+WorkMatrix+AlertsLog+Settings) 2026-05-11 19:45:35 +01:00