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
8.3 KiB
8.3 KiB