Commit Graph

165 Commits

Author SHA1 Message Date
f97569fa13 give a recipe line its own row for its identity
Two fixes to the unlock-choice dialog and the item tooltip.

The dialog's cards set "QWidget { border: 1px solid gray; padding: 8px; }"
as their style sheet, which cascades to every descendant -- so each label
and each item icon of the recipe lines drawn on the card came out boxed.
Scoping the selector to the card by object name leaves the line alone.

The recipe line itself now takes two rows: the building chip and the recipe
name on the first, the cycle -- inputs, arrow, outputs, time -- on the
second. One row of icons, names and numbers ran too long to scan, and an
identity and a cycle read as different things. Where the spec names neither
a building nor a recipe, which is every other user of the line, the first
row is left out and nothing changes.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ne3mejABZoLWKLh8fgpM3x
2026-08-11 21:51:15 +02:00
423b0e74cb let the layout preview state that it shows color alone
REQ-MOD-UI-PREVIEW asked the panel's small layout preview to draw each
occupied cell in the module's fill_color with its glyph character, but the
preview has only ever drawn the color -- at that scale the glyph would not
be legible. The requirement now says what the preview does, and points at
the layout dialog's full-scale grid as the place a module is identified by
its glyph. No code change.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ne3mejABZoLWKLh8fgpM3x
2026-08-11 21:40:58 +02:00
e6f4b66232 drop the glyph from the module button name
The glyph identifies a module on the layout grid, where it is drawn in the
cells the module occupies. On the selection button beside the module's name
it says nothing the name does not, so it goes -- and REQ-MOD-UI-DIALOG,
which asked for it, with it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ne3mejABZoLWKLh8fgpM3x
2026-08-11 21:37:34 +02:00
b7b5a92dbb draw recipes wherever the UI states what something makes
Implements the requirements of 0bf24a7. Recipes were explained in prose:
the recipe dialog was a grid of icon-only buttons with a text tooltip
listing name, inputs, time and output, the unlock-choice dialog listed
recipe names with the same tooltip, an item chip said nothing about where
its item came from, and a module button never showed its cost.

RecipeLineRow is the one widget that draws a recipe -- optional building
chip and name, inputs, arrow, outputs, time -- and every place that states
what something makes now goes through it: the panel's recipe summary (which
it replaces RecipeSummaryRow for), the selection dialog's option buttons,
the item production tooltip, the unlock-choice dialog's recipe lines, the
module buttons' cost lines, and the layout dialog's build cost. Its arrow
is drawn only where there are outputs, so a shipyard summary no longer
points at nothing.

ItemProducers answers where an item comes from, filtering by unlock state
per building type, and ItemTooltip draws it as a window of its own -- Qt's
tooltips are text, this one has item squares and building chips in it.
ItemChip pops it after a hover delay.

The selection dialog becomes one scrolling vertical column of buttons, each
showing its name over its recipe line, and no dialog carries a tooltip any
more. RecipeTooltip and recipes.toml's unused "icon" field go with the
behavior they served.

Two requirement amendments the implementation forced, both in this commit:
the option column scrolls when taller than the window allows, and a Smelter
or Reprocessing recipe is listed once its building is unlocked, those
recipes carrying no unlock of their own. The layout dialog's build cost
also moved out of the shared ShipStatsPanel, which the balancing tool
compiles directly and is deliberately kept free of the icon caches.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ne3mejABZoLWKLh8fgpM3x
2026-08-11 21:20:40 +02:00
0bf24a7c62 show recipes visually instead of describing them in text
Recipes were explained in prose: the recipe selection dialog was a grid of
icon-only buttons whose hover tooltip listed the recipe name, its inputs,
its time and its output, and the unlock-choice dialog listed recipe names
with the same tooltip. The player had to hover every option to learn what
it made, and an item in a buffer said nothing about where it came from.

Retires REQ-UI-RECIPE-ICON and REQ-UI-SELECT-TOOLTIP, whose behavior is
gone, and adds:

* REQ-UI-SELECT-OPTIONS -- the selection dialog is a vertical column of
  buttons, each showing the recipe name (or ship display name) over that
  recipe drawn as the recipe summary line draws it. No tooltips: the
  button face is the whole description.
* REQ-UI-ITEM-TOOLTIP -- hovering an item chip in the selection panel
  shows the item's name, "Produced by", and one line per unlocked recipe
  producing it, each with the running building's icon, the recipe name and
  its summary. Scrap reads "Salvaged from debris"; an item whose every
  recipe is locked reads "Undiscovered".

The unlock-choice dialog's "Unlocks recipes" list uses the same recipe
line and loses its tooltip too (REQ-DEF-SCHEMATIC-DROP), and the layout
configuration dialog gains the same treatment for modules: a module button
states its material cost and added production time, and the stats panel
shows the configured layout's running total (REQ-MOD-UI-DIALOG,
REQ-MOD-UI-STATS-PANEL).

Drops recipes.toml's optional "icon" field, whose only consumer was the
icon-only option button and which no shipped recipe sets.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ne3mejABZoLWKLh8fgpM3x
2026-08-11 15:51:53 +02:00
11de38cf1f open selection panel modals on the panel
Adds REQ-UI-PANEL-MODAL: a modal opened from a control inside the
selection panel is centered on the panel's current rectangle instead of
on the game window, so the cursor does not have to travel back across
the view and return. Covers the two modals the panel opens -- the
recipe/schematic selection dialog and the layout configuration dialog,
including its auto-open after a schematic change.

Fixes the placement to the panel's rectangle as it currently stands, so
a dragged panel carries the modal with it; clamps the modal inside the
game window without resizing it; leaves modality, auto-pause, the modal
dim and dismissal untouched; and excludes every modal not opened from
the panel, including one opened from another modal.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ne3mejABZoLWKLh8fgpM3x
2026-08-11 11:54:31 +02:00
c15f09855c color item icon backgrounds in the UI from visuals.toml
Item icons shown in the UI panels and dialogs were drawn bare; only the
game world composed them onto the item colored square. Extend the square
to every place the UI displays an item as an item: the recipe-selection
dialog option buttons, the selection panel item chips, and the recipe
summary. The inline building_block icon standing in for the word "Blocks"
beside a number stays bare, being a text decoration rather than an item
display.

REQ-UI-ITEM-ICON, REQ-UI-RECIPE-ICON, REQ-UI-SINGLE-SELECTION,
REQ-UI-RECIPE-SUMMARY, REQ-UI-HQ-PANEL

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ne3mejABZoLWKLh8fgpM3x
2026-08-11 08:54:10 +02:00
37378e3c1b allow to move the selection panel via mouse drag 2026-08-09 22:09:41 +02:00
5794a51c9a draw boxes around item icons 2026-08-09 21:20:47 +02:00
09858f4b62 keep an auto-recipe building's summary between its cycles 2026-08-09 20:41:48 +02:00
c0b009c548 place the selection panel beside what it describes 2026-08-09 20:36:58 +02:00
7ae5f8c4dc fix selection panel contents 2026-08-07 22:01:10 +02:00
40415e663b put the controls panel in the corner and let it step around the build bar 2026-08-07 20:42:41 +02:00
4b5e288632 record that additive selection is offered only once something is selected 2026-08-07 19:10:26 +02:00
cab7244b00 divide the always-available rows in the General context too 2026-08-07 19:10:04 +02:00
f61f0bf761 add requirements for a context-sensitive controls panel floating over the game world 2026-08-07 18:47:15 +02:00
2289277e12 split the selection panel into one card per kind of selection 2026-08-07 18:38:55 +02:00
603f8063e9 float the selection panel over the game world instead of a side column 2026-08-06 22:06:42 +02:00
3b37b0ecf8 target single-building transfers by hovering, not by footprint coincidence 2026-08-06 20:31:51 +02:00
98deab932a let any blueprint transfer configuration, not just single-building ones (if the orientation matches) 2026-08-06 20:29:20 +02:00
08d8b0dd90 re-cover copy-settings through single-building blueprints 2026-08-06 19:44:55 +02:00
cd31af2611 remove the Shift copy-building-settings gesture 2026-08-06 19:09:11 +02:00
fd6a7c5815 rekey the temporary blueprint to C, add V to re-place it 2026-08-06 19:07:13 +02:00
18cfe238f6 move blueprints out of the sidebar into Ctrl+C / Ctrl+V dialogs 2026-08-06 19:03:59 +02:00
c1af58d80c float the build buttons as a horizontal bar over the game world and show key bindings inside build buttons 2026-08-06 08:28:40 +02:00
79b79ab7c3 Show building_block icon in header stock, expand button and build costs 2026-07-23 21:13:37 +02:00
f766ae4a86 Allow to draw produced-item icons in recipe dialog and game world 2026-07-23 20:54:04 +02:00
8b71fe1a03 Rename ship/station scrap drop entities to "debris" 2026-07-23 20:51:05 +02:00
11daa61714 Add refund-percentage tooltip to Deconstruct button 2026-07-23 20:46:39 +02:00
60d6767d93 draw building icons in the game world 2026-07-23 20:45:50 +02:00
7c1455b8a0 add icons for build buttons 2026-07-22 21:44:20 +02:00
e20a0bba67 Rename Demolish to Deconstruct 2026-07-22 21:40:42 +02:00
b2ce20e6ad Add deconstruction queue 2026-07-22 21:37:56 +02:00
a9082c57f3 Implement config-driven unlock groups so that multiple things can be unlocked at once (including buildings) 2026-07-22 21:34:59 +02:00
a8a6a04f1e Highlight tunnel connections in green when selected 2026-07-21 21:16:21 +02:00
a75222f111 Never rotate tunnels in place 2026-07-21 21:14:27 +02:00
9b63af6ccb Unify tunnel build mode into a single Tunnel button 2026-07-21 21:12:06 +02:00
4ca5b332cd Snap belt-drag end tile to a building's input edge 2026-07-21 21:09:07 +02:00
0c4eb480be Update belt drag L-path immediately on rotate 2026-07-21 21:06:54 +02:00
b2c1ea34fd Implement deferred L-shaped belt drag placement 2026-07-21 21:05:31 +02:00
1cbc695bc5 Add building status light 2026-07-20 22:19:58 +02:00
c7ecce6ac4 make empty layout cells pulse while module is selected 2026-07-20 22:15:26 +02:00
be475e2836 allow multi-select for ships/stations, mixable with scrap 2026-07-20 21:03:11 +02:00
1cdafb7bcd draw glyph for output port at the target tile during build mode 2026-07-19 22:30:03 +02:00
f205136e21 show tooltip for artifacts in the header bar 2026-07-19 22:16:04 +02:00
b708e1b29d Add demolish-mode vignette 2026-07-19 21:51:12 +02:00
c76ba07bc7 Correct top game speed step to 10x in requirements 2026-07-19 21:37:47 +02:00
b2e7e4897a Add paused-state vignette border to game world view 2026-07-19 21:34:56 +02:00
9c1e948ab4 show selected ship's current behavior in sidebar panel 2026-07-14 21:19:14 +02:00
486296feee Allow direct output-to-input port coupling between adjacent buildings 2026-07-14 20:23:24 +02:00