# v0.1.530 — C6c-c TowerLamp 할당 critic 중대 fix (Apply 대칭 + 블록 탐색 최적화)

- 버전: v0.1.530
- 날짜: 2026-06-03
- 다운로드: [factory00-windows-x64-v0.1.530.zip](../../downloads/factory00-windows-x64-v0.1.530.zip) (170 MB)
- 캡처: [qa-screenshots/v0.1.530/](../../qa-screenshots/v0.1.530/)

---

## critic 중대 fix (CONDITIONAL → PASS)
- 중대#1 (PlcAddressMigration.Apply TowerLamp case 비대칭) → Apply에 TowerLamp case 추가(Ch0→ModbusCoilBase, Register 대칭/방어). 편집 중 발생한 Apply 중복 1건 제거
- 중대#2 (IsBlockFree 매 start HashSet 생성 O(N×M)) → NextFreeBlock에서 UsedCoils 1회 호이스팅 + BlockFree 분리
- 치명(수동 실패 field 복원) = critic 과분석 — map Ch0 == ModbusCoilBase 항상 일치(Write가 둘 다 set)라 CurNumber 복원 정확
- 사소 ★ (코드 헤더 이모지 3건) → 제거 (no-emoji 룰)
## C6c-c 최종 (v0.1.529~530)
- `PlcTowerLampAssigner` base+offset 격리 모듈 — 자동(연속 빈 블록)+수동(블록 충돌). ModbusCoilBase SSOT 역기록
- 뷰가 TowerLamp→_towerAssigner / 일반→_assigner 라우팅. CanAssignPort: TowerLamp Ch0만, 일반 전부
## 영향 파일
- `Assets/Scripts/Plc/PlcAddressMigration.cs` (Apply TowerLamp case + 중복 제거)
- `Assets/Scripts/Plc/PlcTowerLampAssigner.cs` (HashSet 호이스팅 + ★ 제거)
- `Assets/Scripts/Plc/{PlcAddressMappingPanel,IAddressableComponent}.cs` (★ 제거)
## S0048/S0012 진행
- C1~C6c-c 완료 — 4탭 에디터 + 6컴포넌트 전부(TowerLamp 포함) 할당 + 영속. **S0012 핵심 spec 완결**
- 5 모듈 격리 설계. 잔존: C4 switchover(비호환, 사용자 확인). 드래그·수동 UI = Stage 2
