extends Node ## Pure signal hub — notification-only, no state, no callbacks back into singletons. ## ## Subsystems mutate themselves; this bus only spreads the news. Add signals as ## features land — keep this file readable. See docs/architecture.md. # Sim signal sim_tick(tick_number: int) ## Emitted once per sim tick at the current speed. signal speed_changed(new_speed: int) ## Emitted when Sim.current_speed changes; value is Speed enum cast to int. # Phase 2 will add pawn-state signals (selected, deselected, walking, …). # Phase 5 — Designation paint mode. signal designation_added(cell: Vector2i, tool: StringName) ## Ghost placed + job queued. signal designation_cleared(cell: Vector2i) ## Ghost removed (job cancelled). # Phase 8 — Mood system. signal pawn_mood_changed(pawn, mood: float) ## Emitted by Pawn._recompute_mood() whenever mood is recalculated.