Transport Hub building
Forgejo #18, part 5 of #12. The building only - the vessels that do the hauling are #19. Placeable, costed at 30, gated behind a new "Freight Handling" research node hanging off Logistics, with its own info popup, build-menu glyph and map marker. Drawn as an octagonal dock ring with berth arms and a squared-off freight core: deliberately radial-but-flat so it does not read as a small mothership, which is the only structure with swept arms. Its stationed transports are NeonPiece children of one rotating holder, per #10 - the geometry is rasterised once and only the holder's rotation changes, so the traffic costs no redraws. Building._draw()'s match has a catch-all that renders anything unrecognised as a ship crafter, so a missing case is silent and looks almost right. The test checks for the hub's own _hub_traffic holder rather than trusting that something plausible appeared - which caught exactly that: a _ready() patch had silently not applied and the hub was rendering through the crafter branch. The build menu grew a third row. Every button, label and price moved: the old row occupied 332px against a 372px pitch, and three of those do not fit above a 1280px screen. Rows are now shorter (128px buttons, 40px price digits) at a 290px pitch, ending at y=1176. Rendered and looked at - the first attempt tightened the pitch alone and left every price overlapping the row beneath it, which no headless test would have seen. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
ff162faef5
commit
823828f3b3
10 changed files with 400 additions and 52 deletions
|
|
@ -10,6 +10,7 @@ const WORLD_TO_LOCAL: float = 0.04
|
|||
const MOTHERSHIP_MARKER_COLOR: Color = Color(0.45, 0.9, 0.55)
|
||||
const CRAFTER_MARKER_COLOR: Color = Color(1.0, 0.72, 0.25)
|
||||
const COMMAND_MARKER_COLOR: Color = Color(0.55, 0.6, 1.0)
|
||||
const TRANSPORT_HUB_MARKER_COLOR: Color = Color(0.95, 0.55, 0.85)
|
||||
|
||||
# A structure built on a planet's surface (see GameState.extractors) is not
|
||||
# itself a map marker - it is a small badge on the existing planet marker,
|
||||
|
|
@ -50,6 +51,8 @@ func _building_marker_color(type: String) -> Color:
|
|||
return MOTHERSHIP_MARKER_COLOR
|
||||
GameState.BUILDING_SHIP_CRAFTER:
|
||||
return CRAFTER_MARKER_COLOR
|
||||
GameState.BUILDING_TRANSPORT_HUB:
|
||||
return TRANSPORT_HUB_MARKER_COLOR
|
||||
_:
|
||||
return COMMAND_MARKER_COLOR
|
||||
|
||||
|
|
@ -115,6 +118,8 @@ func _draw() -> void:
|
|||
_draw_marker_polygon(_regular_polygon(marker.position, 8.0, 6, PI / 6.0), marker.color)
|
||||
GameState.BUILDING_SHIP_CRAFTER:
|
||||
_draw_marker_polygon(_regular_polygon(marker.position, 7.0, 4, 0.0), marker.color)
|
||||
GameState.BUILDING_TRANSPORT_HUB:
|
||||
_draw_marker_polygon(_regular_polygon(marker.position, 7.5, 8, PI / 8.0), marker.color)
|
||||
_:
|
||||
_draw_marker_polygon(_regular_polygon(marker.position, 6.0, 4, PI / 4.0), marker.color)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue