Rockets to scale: no overlapping bases !46

merged merged by cmc on 2026-10-19 05:40 UTC · krz/moonrise:rocket-widths into main

1 file changed, +5 −3

Layout: unified · split

App/Sources/RocketLineup.swift +5 −3
@@ -70,20 +70,22 @@ struct RocketLineup: View {
7070 let mine = r.id == highlight
7171 let h = d.heightM! * scale
7272 let w = max((d.diameterM ?? 3) * scale, 4)
73 // Fins reach 0.35 × width past each side, so wide rockets get a wider column.
74 let width = max(column, w * 1.7 + 14)
7375 return VStack(spacing: 4) {
7476 Text(String(format: "%.0f m", d.heightM!)).font(.caption2.monospacedDigit()).foregroundStyle(ink.opacity(0.7))
7577 .frame(height: top - 4)
7678 RocketShape()
7779 .fill(mine ? accent : ink.opacity(0.75))
7880 .frame(width: w, height: h)
79 Rectangle().fill(ink.opacity(0.35)).frame(width: column, height: 0.5)
81 Rectangle().fill(ink.opacity(0.35)).frame(width: width, height: 0.5)
8082 Text(r.title).font(.caption2.weight(mine ? .semibold : .regular))
8183 .foregroundStyle(mine ? accent : ink.opacity(0.85))
8284 .multilineTextAlignment(.center)
8385 .lineLimit(2)
84 .frame(width: column - 6, height: bottom - 6, alignment: .top)
86 .frame(width: width - 6, height: bottom - 6, alignment: .top)
8587 }
86 .frame(width: column)
88 .frame(width: width)
8789 .contentShape(Rectangle())
8890 .accessibilityElement(children: .ignore)
8991 .accessibilityLabel("\(r.title), \(Int(d.heightM!)) metres")