#pragma once #include #include #include #include #include "BuildingType.h" struct TileVisuals { QColor fill; }; struct BuildingVisuals { QColor fill; QColor outline; QString glyph; }; struct ItemVisuals { QColor fill; QColor outline; }; struct ShipVisuals { QColor fill; QColor outline; }; struct BeamVisuals { QColor weaponColor; QColor repairColor; QColor salvageColor; int widthPx; }; struct OverlayVisuals { QColor ghostValid; QColor ghostInvalid; QColor deconstructTint; QColor selectionRect; QColor tileHighlight; QColor selectedOutline; QColor configTransfer; // blueprint ghost over a transfer target (REQ-UI-BLUEPRINT-TRANSFER) QColor lockedAsteroid; QColor modalDim; QColor tunnelPreview; // tunnel connection preview highlight (REQ-BLD-TUNNEL-MODE) }; struct ToastVisuals { QColor bg; QColor fg; int fontSize; }; // Fill colors for the building status light (REQ-UI-STATUS-LIGHT), plus its // constant outline color. struct StatusLightVisuals { QColor grey; // no recipe/schematic selected QColor green; // producing QColor red; // idle, input missing (or Salvage Bay empty) QColor yellow; // idle, output buffer full QColor outline; }; struct VisualsConfig { TileVisuals asteroid; TileVisuals space; std::map buildings; std::map items; std::map ships; BeamVisuals beams; OverlayVisuals overlays; ToastVisuals toast; StatusLightVisuals statusLight; };