REQ-BLD-COPY-CONFIG is dropped: Shift+right-click no longer caches a building's recipe / schematic+layout / splitter filters, Shift+left-click no longer stamps them onto same-type buildings, and the cyan eligible- target tint and copy/paste flashes go with them. Shift+left-click now falls through to normal selection, which needs no code of its own -- only Ctrl is meaningful to selection (REQ-UI-MULTI-SELECT), so dropping the branch that consumed the click is enough. readBuildingConfig stays. It had two callers, and the other one is captureBlueprintFromSelection, which needs it to record each blueprint building's configuration (REQ-UI-BLUEPRINT-STORAGE). Its five tests stay too, retagged [blueprint] and rewritten to name the caller that is left. The visuals.toml copy_config colour is removed together with its VisualsConfig field and its loader line: overlay keys are mandatory, so those three have to move as one or startup aborts. REQ-BLD-COPY-CONFIG-FEEDBACK, cited by four of these files and by the TOML comment, never existed in requirements.md; deleting the citations retires a dangling id. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JcReq7hVk4KUPhTDKWAG7K
377 lines
8.3 KiB
TOML
377 lines
8.3 KiB
TOML
# visuals.toml
|
|
#
|
|
# Rendering-only configuration, loaded once at startup by the UI.
|
|
# The simulation does not read this file.
|
|
#
|
|
# Every BuildingType, ItemType, ship role, and station type must have an
|
|
# entry here; missing or malformed entries abort startup (see architecture.md
|
|
# "Visual Parameters").
|
|
#
|
|
# Colors are "#rrggbb" or "#rrggbbaa" (alpha optional, last byte).
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Tile backgrounds
|
|
# -----------------------------------------------------------------------------
|
|
|
|
[tiles.asteroid]
|
|
fill = "#4a4038"
|
|
|
|
[tiles.space]
|
|
fill = "#0a0a15"
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Buildings
|
|
#
|
|
# One section per BuildingType enum value. `fill` colors every footprint tile
|
|
# of the building; `outline` is drawn around the building's bounding box;
|
|
# `glyph` is a short label drawn centered on the building.
|
|
# -----------------------------------------------------------------------------
|
|
|
|
[buildings.hq]
|
|
fill = "#2e5fb8"
|
|
outline = "#ffffff"
|
|
glyph = "HQ"
|
|
|
|
[buildings.miner]
|
|
fill = "#6b4a2c"
|
|
outline = "#ffffff"
|
|
glyph = "M"
|
|
|
|
[buildings.smelter]
|
|
fill = "#b85a1e"
|
|
outline = "#ffffff"
|
|
glyph = "Sm"
|
|
|
|
[buildings.assembler]
|
|
fill = "#3a6fa8"
|
|
outline = "#ffffff"
|
|
glyph = "A"
|
|
|
|
[buildings.reprocessing_plant]
|
|
fill = "#6a3a8a"
|
|
outline = "#ffffff"
|
|
glyph = "R"
|
|
|
|
[buildings.shipyard]
|
|
fill = "#385870"
|
|
outline = "#ffffff"
|
|
glyph = "Y"
|
|
|
|
[buildings.salvage_bay]
|
|
fill = "#b8a23a"
|
|
outline = "#ffffff"
|
|
glyph = "Sb"
|
|
|
|
[buildings.belt]
|
|
fill = "#1a1a1a"
|
|
outline = "#7a7a7a"
|
|
glyph = ""
|
|
|
|
[buildings.splitter]
|
|
fill = "#7a7a5a"
|
|
outline = "#9a9a7a"
|
|
glyph = ""
|
|
|
|
[buildings.tunnel_entry]
|
|
fill = "#4a6a5a"
|
|
outline = "#8aaa9a"
|
|
glyph = "Te"
|
|
|
|
[buildings.tunnel_exit]
|
|
fill = "#5a6a4a"
|
|
outline = "#9aaa8a"
|
|
glyph = "Tx"
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Stations
|
|
#
|
|
# Player and enemy defence stations have their own entries rather than going
|
|
# through [buildings.*] so the two sides can be color-coded at a glance.
|
|
# -----------------------------------------------------------------------------
|
|
|
|
[stations.player]
|
|
fill = "#2e5fb8"
|
|
outline = "#ffffff"
|
|
glyph = "P"
|
|
|
|
[stations.enemy]
|
|
fill = "#b82e2e"
|
|
outline = "#ffffff"
|
|
glyph = "E"
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Items
|
|
#
|
|
# Items on belts are 10x10 squares. `fill` is the square color; `outline` is
|
|
# drawn around it. One section per ItemType.
|
|
# -----------------------------------------------------------------------------
|
|
|
|
# --- ores ---
|
|
|
|
[items.iron_ore]
|
|
fill = "#8a5a4a"
|
|
outline = "#201010"
|
|
|
|
[items.copper_ore]
|
|
fill = "#c47a3a"
|
|
outline = "#3a1a0a"
|
|
|
|
[items.quartz]
|
|
fill = "#e0d4f0"
|
|
outline = "#40345a"
|
|
|
|
# --- smelted basics ---
|
|
|
|
[items.iron_ingot]
|
|
fill = "#b0b0b8"
|
|
outline = "#202028"
|
|
|
|
[items.copper_ingot]
|
|
fill = "#d48a4a"
|
|
outline = "#402010"
|
|
|
|
[items.silicon]
|
|
fill = "#33415e"
|
|
outline = "#0e1420"
|
|
|
|
# --- salvage loop ---
|
|
|
|
[items.scrap]
|
|
fill = "#7a7268"
|
|
outline = "#201a14"
|
|
|
|
[items.voidsteel]
|
|
fill = "#4a3a6a"
|
|
outline = "#151020"
|
|
|
|
# --- basic components ---
|
|
|
|
[items.copper_wire]
|
|
fill = "#e09a50"
|
|
outline = "#3a2008"
|
|
|
|
[items.steel_plate]
|
|
fill = "#8a92a0"
|
|
outline = "#22262c"
|
|
|
|
[items.copper_coil]
|
|
fill = "#d07030"
|
|
outline = "#381808"
|
|
|
|
[items.building_block]
|
|
fill = "#c8b070"
|
|
outline = "#302810"
|
|
|
|
# --- advanced components ---
|
|
|
|
[items.control_chip]
|
|
fill = "#2ea35a"
|
|
outline = "#0a2a14"
|
|
|
|
[items.capacitor_bank]
|
|
fill = "#d0a030"
|
|
outline = "#302408"
|
|
|
|
[items.hardened_steel]
|
|
fill = "#6a7280"
|
|
outline = "#181c22"
|
|
|
|
[items.ceramic_plate]
|
|
fill = "#e0d8c8"
|
|
outline = "#3a3428"
|
|
|
|
[items.drive_unit]
|
|
fill = "#4a6ad0"
|
|
outline = "#101a38"
|
|
|
|
# --- capital components ---
|
|
|
|
[items.voidsteel_plate]
|
|
fill = "#7a5aaa"
|
|
outline = "#1c1038"
|
|
|
|
[items.capital_core]
|
|
fill = "#b040d0"
|
|
outline = "#280c30"
|
|
|
|
# --- module items ---
|
|
|
|
[items.railgun_s_module]
|
|
fill = "#691313"
|
|
outline = "#f3ff4f"
|
|
|
|
[items.railgun_m_module]
|
|
fill = "#892020"
|
|
outline = "#f3ff4f"
|
|
|
|
[items.railgun_l_module]
|
|
fill = "#a92d2d"
|
|
outline = "#f3ff4f"
|
|
|
|
[items.salvager_module]
|
|
fill = "#b2cfdd"
|
|
outline = "#236137"
|
|
|
|
[items.repair_tool_module]
|
|
fill = "#2e9ba3"
|
|
outline = "#689275"
|
|
|
|
[items.armor_plates_module]
|
|
fill = "#808080"
|
|
outline = "#202020"
|
|
|
|
[items.sensor_booster_module]
|
|
fill = "#40a0ff"
|
|
outline = "#102840"
|
|
|
|
[items.maneuvering_thrusters_module]
|
|
fill = "#5090e0"
|
|
outline = "#142438"
|
|
|
|
[items.afterburner_module]
|
|
fill = "#6080c0"
|
|
outline = "#182030"
|
|
|
|
[items.weapon_upgrade_module]
|
|
fill = "#ff4040"
|
|
outline = "#401010"
|
|
|
|
[items.weapon_primer_module]
|
|
fill = "#e03838"
|
|
outline = "#380e0e"
|
|
|
|
[items.weapon_stabilizer_module]
|
|
fill = "#c03030"
|
|
outline = "#300c0c"
|
|
|
|
[items.drone_bay_module]
|
|
fill = "#cc66ff"
|
|
outline = "#331040"
|
|
|
|
[items.drone_hangar_module]
|
|
fill = "#9933cc"
|
|
outline = "#260c33"
|
|
|
|
# --- ship hulls (outline matches the ship's fleet color in [ships.*]) ---
|
|
|
|
[items.drone_hull]
|
|
fill = "#1b1b1b"
|
|
outline = "#3366ff"
|
|
|
|
[items.frigate_hull]
|
|
fill = "#1b1b1b"
|
|
outline = "#44aaff"
|
|
|
|
[items.destroyer_hull]
|
|
fill = "#1b1b1b"
|
|
outline = "#33ccaa"
|
|
|
|
[items.cruiser_hull]
|
|
fill = "#1b1b1b"
|
|
outline = "#66cc33"
|
|
|
|
[items.battlecruiser_hull]
|
|
fill = "#1b1b1b"
|
|
outline = "#cccc33"
|
|
|
|
[items.battleship_hull]
|
|
fill = "#1b1b1b"
|
|
outline = "#ff9933"
|
|
|
|
[items.dreadnought_hull]
|
|
fill = "#1b1b1b"
|
|
outline = "#ff5533"
|
|
|
|
[items.carrier_hull]
|
|
fill = "#1b1b1b"
|
|
outline = "#cc66ff"
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Ships
|
|
#
|
|
# Ships are drawn as oriented triangles/arrows. Color is keyed to schematic id.
|
|
# -----------------------------------------------------------------------------
|
|
|
|
[ships.drone]
|
|
fill = "#3366ff"
|
|
outline = "#ffffff"
|
|
|
|
[ships.frigate]
|
|
fill = "#44aaff"
|
|
outline = "#ffffff"
|
|
|
|
[ships.destroyer]
|
|
fill = "#33ccaa"
|
|
outline = "#ffffff"
|
|
|
|
[ships.cruiser]
|
|
fill = "#66cc33"
|
|
outline = "#ffffff"
|
|
|
|
[ships.battlecruiser]
|
|
fill = "#cccc33"
|
|
outline = "#ffffff"
|
|
|
|
[ships.battleship]
|
|
fill = "#ff9933"
|
|
outline = "#ffffff"
|
|
|
|
[ships.dreadnought]
|
|
fill = "#ff5533"
|
|
outline = "#ffffff"
|
|
|
|
[ships.carrier]
|
|
fill = "#cc66ff"
|
|
outline = "#ffffff"
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Laser beams (REQ-SHP-FIRING-BEAM)
|
|
# -----------------------------------------------------------------------------
|
|
|
|
[beams]
|
|
weapon_color = "#ff6600"
|
|
repair_color = "#33ff66"
|
|
salvage_color = "#33ccff"
|
|
width_px = 2
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Build / deconstruct / selection overlays
|
|
#
|
|
# All overlay colors carry an alpha channel so they composite over the
|
|
# underlying scene.
|
|
# -----------------------------------------------------------------------------
|
|
|
|
[overlays]
|
|
ghost_valid = "#ffffff44" # builder-mode ghost, placement allowed (REQ-BLD-GHOST)
|
|
ghost_invalid = "#ff000044" # builder-mode ghost, placement invalid (REQ-BLD-PLACE-VALID)
|
|
deconstruct_tint = "#ff000033" # deconstruct-mode hover tint
|
|
selection_rect = "#00ff00" # box-drag selection rectangle (REQ-UI-MULTI-SELECT)
|
|
tile_highlight = "#ffffff22" # tile under cursor
|
|
selected_outline = "#ffff00" # outline drawn around currently-selected building(s)
|
|
locked_asteroid = "#0000007f" # tint over the asteroid left of the buildable edge (not yet unlocked by expansion)
|
|
modal_dim = "#00000099" # semi-transparent black dim behind modal dialogs/menus (REQ-UI-MODAL-DIM)
|
|
tunnel_preview = "#00ff0055" # tunnel connection preview: matched end + tiles between (REQ-BLD-TUNNEL-MODE)
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Schematic-drop toasts (REQ-UI-SCHEMATIC-TOAST)
|
|
# -----------------------------------------------------------------------------
|
|
|
|
[toast]
|
|
bg = "#000000cc"
|
|
fg = "#ffffff"
|
|
font_size = 14
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Building status light (REQ-UI-STATUS-LIGHT)
|
|
#
|
|
# Fill color per production state, drawn as a small circle in the building's
|
|
# upper-right corner, plus the constant outline color.
|
|
# -----------------------------------------------------------------------------
|
|
|
|
[status_light]
|
|
grey = "#808080" # no recipe/schematic selected
|
|
green = "#33cc33" # producing (Salvage Bay: holding scrap)
|
|
red = "#cc3333" # idle, input missing (Salvage Bay: empty)
|
|
yellow = "#e6c619" # idle, output buffer full
|
|
outline = "#000000"
|