Parts Assembly
Pawn Module · Avatar
Parts
Assembly
슬롯 키 기반 오픈 파츠 스택 시스템.
고정된 슬롯 목록 없이 키 문자열만으로 장착·누적·대체를 결정한다.
SlotKeyLayerOrderHierarchyRequiredSlots
Section 00
핵심 규칙
슬롯 키가 같은지 다른지가 전부다. 이 두 가지 규칙이 모든 파츠 조합을 결정한다.
슬롯 키가 다르면
두 파츠 동시 표시
STACK
슬롯 키가 같으면
새 파츠가 기존 파츠 대체
REPLACE
Section 01
계층 구조
슬롯 키는 점(.)으로 계층을 표현한다. 상위 슬롯이 비어있으면 하위 슬롯은 전부 착용 불가. 상위 슬롯 해제 시 하위 슬롯도 자동 해제된다.
outfit ← 이 슬롯이 비면 하위 전체 잠김
├──outfit.upper
├──outfit.lower
├──outfit.gloves
└──outfit.boots
상위 슬롯 상태결과
outfit 점유됨outfit.* 착용 가능outfit 비어있음outfit.* 전체 착용 불가armor 비어있음armor.* 전체 착용 불가Section 02
파츠(Part) 필드
필드타입설명
PartIduint전역 고유 ID
SlotKeysstring[]점유할 슬롯 키 목록. 여러 개 지정 시 모두 동시 점유. 계층은
.으로 표현.LayerOrderint렌더 적층 순서. 낮을수록 아래에 렌더.
AssetIduint비주얼 에셋 키.
0이면 슬롯 점유만 하고 렌더 없음.RequiredSlotsstring[]이 파츠 장착 전에 점유되어야 할 슬롯 키 목록. 하나라도 비면 장착 거부.
AssetId = 0인 파츠는 비주얼 없이 슬롯만 점유한다. 상위 슬롯 활성 조건을 충족하는 용도로 사용.
Section 03
멀티 슬롯 점유
하나의 파츠가 SlotKeys에 여러 슬롯 키를 나열하면 모든 슬롯을 동시에 점유한다. 점유된 슬롯 중 하나라도 다른 파츠가 있으면 해당 슬롯을 대체한다.
예: 너클 장비
ring.l.1ring.l.2ring.l.3ring.l.4ring.l.5
너클을 장착하면 왼손 손가락 5개 슬롯을 모두 점유 → 반지를 끼려면 너클을 먼저 해제해야 한다.
슬롯 키는 점 표기로 무한히 확장할 수 있다. 시스템은 키 문자열의 깊이에 제한을 두지 않는다.
ring.l.1 · ring.l.1.joint_3 · ring.l.1.joint_3.tip_0 · ... Section 04
슬롯 키 네이밍
슬롯 키의 이름은 시스템이 강제하지 않는다. 어떤 문자열도 슬롯 키가 될 수 있으며, 콘텐츠 레이어에서 자유롭게 정의한다.
시스템 기본값
없음
의상, 방어구, 악세서리 등의 슬롯 키는 시스템이 정의하지 않는다. 콘텐츠 문서에서 컨벤션을 결정한다.
Body Parts 기본값
존재
신체 부위 슬롯 키는 시스템(Health) 수준에서 정의된 기본값을 사용한다. 상세는 Body Parts 문서를 참고한다.
Section 05
선행 슬롯 조건
계층 규칙과 별개로, 파츠는 RequiredSlots에 슬롯 키를 나열해 선행 장착 조건을 추가 선언할 수 있다.
1
계층(Hierarchy) 확인
상위 슬롯이 점유되어 있는가?
↓
2
RequiredSlots 확인
지정 슬롯이 모두 점유되어 있는가?
↓
장착 허용
두 검사 모두 통과해야 한다
이 필드는 슬롯 키 문자열만 참조한다. 그 슬롯이 의상 파츠로 채워졌는지 신체 부위 파츠로 채워졌는지는 관여하지 않는다.
어떤 슬롯이 신체 부위인지는 시스템·콘텐츠 문서에서 정의한다.
어떤 슬롯이 신체 부위인지는 시스템·콘텐츠 문서에서 정의한다.
Section 06
장착 / 해제 흐름
Equip(part)
1. 계층 유효성 확인 상위 슬롯이 점유되어 있는가? → 비어있으면 장착 거부 2. RequiredSlots 확인 지정 슬롯 모두 점유 여부 → 하나라도 비면 장착 거부 3. 동일 SlotKey 기존 파츠 제거 4. 신규 파츠 삽입 5. 렌더러 알림 LayerOrder 재정렬 → 합성
Unequip(slotKey)
1. 해당 슬롯 제거 2. 해당 슬롯이 상위 슬롯이었다면 → 하위 슬롯 전체 자동 해제 (재귀적으로 적용) 3. 렌더러 알림