Files
dota_factory/bin/app
Malte Langkabel ee71be549a Implement building status light (REQ-UI-STATUS-LIGHT)
Add a per-building status light: a small circle drawn in the operational
building's upper-right corner (rotating with the building) so production
state is readable without selecting it.

- Sim: BuildingSystem::getProductionStatus classifies each building into
  Unconfigured/Producing/Starved/Blocked (nullopt for non-production
  types); Salvage Bay is a two-state special case (Producing with scrap,
  Starved when empty). Extracted shared predicates (gatherCandidateRecipes,
  recipeInputsAvailable, computeShipyardRequiredMaterials, hasInputsToStart)
  so tickProduction / tickShipyardProduction and the classifier stay in sync.
- UI: GameWorldView draws the circle, mapping status -> color from a new
  visuals.toml [status_light] section (grey/green/red/yellow + outline).
- Tests: getProductionStatus cases for every state, including red-over-yellow
  precedence and the auto-recipe/salvage-bay specials.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y7N59FsLA5e2kuVdqe4Uhc
2026-07-20 21:50:08 +02:00
..