feat(B06): 기슭막이 기준벽에서 단 수·옵션 행을 항상 세운다

배관 유입·유출과 독립 좌·우 기준벽에서는 [추가 기슭막이(단)]과 [옵션]이
상태와 무관하게 자리를 지킨다. 링크 카드에서 만져도 제어기가 소유 측점 값을
고치므로 안전하다. 집수정 유입은 종전대로 계류측 단 자리가 있을 때만 뜬다.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-29 19:21:46 +09:00
co-authored by Claude Opus 5
parent f0af311d4b
commit 4a587012a9
@@ -525,9 +525,8 @@ export function buildStructurePanel(
: movable
? L("B06_Cross_Revet_Inlet")
: L("B06_Cross_Struct_InletBasin");
// 독립 기슭막이(관 숨김)는 유입·유출이 같은 성토 벽이다 — 집수정 형식 선택
// 숨기고 유입측에도 단 수 행을 준다(2026-08-29 사용자: 좌우 조작 통일).
const ownTiers = deps.hiddenPipe() && key === "inlet";
// 독립 기슭막이(관 숨김)는 유입·유출이 같은 성토 벽이다 — 집수정 형식 선택만 숨긴다
// (단 수 행은 아래에서 기슭막이 기준벽이면 언제나 준다).
// 형식 선택은 유입측에서만, 이동·높이 조작은 기슭막이(집수정 제외)만.
structureRow.classList.toggle("is-hidden", key !== "inlet" || deps.hiddenPipe());
if (key === "inlet" && !deps.hiddenPipe()) {
@@ -594,14 +593,13 @@ export function buildStructurePanel(
: tierChannel === "basin"
? deps.basinExtraState()
: { canAdd: false, count: 0 };
// 기슭막이 기준벽(배관 유입·유출, 독립 좌·우)에서는 **항상** 보인다(2026-08-30
// 사용자). 링크 카드에서 만져도 제어기가 소유 측점 값을 고치므로 안전하다.
// 집수정 유입은 계류측 단이 설 자리가 있을 때만 — 벽이 아니라 구체다.
const revetWall = (key === "inlet" || key === "outlet") && !isBasin;
extraRow.classList.toggle(
"is-hidden",
deps.isLinkedCard() ||
!(
tierChannel === "outlet" ||
(tierChannel === "basin" &&
(ownTiers || (isBasin && (tiers.canAdd || tiers.count > 0))))
),
!revetWall && !(isBasin && tierChannel === "basin" && (tiers.canAdd || tiers.count > 0)),
);
currentCount = tiers.count;
countValue.textContent = `${tiers.count}`;
@@ -622,7 +620,12 @@ export function buildStructurePanel(
linkToggle.button.title = levelled ? LINK_LOCKED_TITLE : LINK_TITLE;
gradeToggle.button.classList.toggle("is-hidden", currentSpan === null);
gradeToggle.set(!levelled);
optionParts.row.classList.toggle("is-hidden", linkState === null && currentSpan === null);
// 옵션(연동·경사)도 기슭막이 기준벽에서는 항상 자리를 지킨다 — 상태 따라
// 나타났다 사라지면 아래 행들이 널뛴다(2026-08-30 사용자).
optionParts.row.classList.toggle(
"is-hidden",
!revetWall && linkState === null && currentSpan === null,
);
const adjust = deps.adjustFor(key);
// 정보는 항목당 한 행(2026-08-22 사용자) — 0이면 "자동", 좌우는 안/바깥,
// 상하는 위/아래로 적는다.