rimlike/autoload
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
..
audit.gd Phase 0 scaffold + asset audit findings 2026-05-10 20:09:11 +01:00
audit.gd.uid Make main scene root Node2D so editor defaults to 2D view 2026-05-10 20:19:09 +01:00
autosave.gd Phase 16: Save/load full coverage + autosave + UI 2026-05-11 19:24:59 +01:00
autosave.gd.uid Phase 16: Save/load full coverage + autosave + UI 2026-05-11 19:24:59 +01:00
clock.gd Phase 17: Touch UX (PawnDetail+BuildDrawer+WorkMatrix+AlertsLog+Settings) 2026-05-11 19:45:35 +01:00
clock.gd.uid Phase 11 — Day/night cycle + Lighting (taken before Phase 9 per recommendation) 2026-05-11 15:54:15 +01:00
event_bus.gd Alerts: wire room_too_large, no_stockpile_accepts, bill_blocked 2026-05-12 13:16:25 +01:00
event_bus.gd.uid Make main scene root Node2D so editor defaults to 2D view 2026-05-10 20:19:09 +01:00
game_state.gd Phase 17: Touch UX (PawnDetail+BuildDrawer+WorkMatrix+AlertsLog+Settings) 2026-05-11 19:45:35 +01:00
game_state.gd.uid Make main scene root Node2D so editor defaults to 2D view 2026-05-10 20:19:09 +01:00
save_system.gd Phase 16: Save/load full coverage + autosave + UI 2026-05-11 19:24:59 +01:00
save_system.gd.uid Make main scene root Node2D so editor defaults to 2D view 2026-05-10 20:19:09 +01:00
sim.gd Phase 1 — 80² world, 6-layer TileMap, camera rig, tick loop, speed UI 2026-05-10 20:37:02 +01:00
sim.gd.uid Make main scene root Node2D so editor defaults to 2D view 2026-05-10 20:19:09 +01:00
storyteller.gd Storyteller: restore sim speed after auto_pause event dismissal 2026-05-12 12:17:15 +01:00
storyteller.gd.uid Phase 15: Storyteller (25 events, daily roll, banner+modal UI) 2026-05-11 19:01:35 +01:00
strings.gd Phase 17: Touch UX (PawnDetail+BuildDrawer+WorkMatrix+AlertsLog+Settings) 2026-05-11 19:45:35 +01:00
strings.gd.uid Make main scene root Node2D so editor defaults to 2D view 2026-05-10 20:19:09 +01:00
weather.gd Phase 12: Seasons + Weather (rolls, rain, storm, wet/cold) 2026-05-11 16:39:34 +01:00
weather.gd.uid Phase 12: Seasons + Weather (rolls, rain, storm, wet/cold) 2026-05-11 16:39:34 +01:00
world.gd Phase 16: Save/load full coverage + autosave + UI 2026-05-11 19:24:59 +01:00
world.gd.uid Make main scene root Node2D so editor defaults to 2D view 2026-05-10 20:19:09 +01:00