콘텐츠로 이동

격자 가방 인벤토리

현재 구현 범위

거점과 작전에서 I 키로 12×8 가방을 열고 닫습니다. 아이템은 종류와 정의에 따라 서로 다른 격자 크기를 점유하며, 같은 칸에 겹치거나 가방 경계를 벗어날 수 없습니다.

예시 점유 크기
돌격소총·대검 4×2
전술 조끼 3×3
전용 파츠 2×1 또는 3×1
구급품 2×2
모든 장비 모듈 1×1 고정

가방을 열면 게임이 일시정지되고 ESC로 닫을 수 있습니다. U/E 장비 화면을 열면 가방은 자동으로 닫힙니다. 패널을 클릭하면 아이템 종류, 점유 크기, 설명이 아래에 표시됩니다.

거점의 I 화면은 출격 준비 가방입니다. 전투 세션과 동일한 GridInventoryWindow를 재사용하며, U/E 화면에서 장비·모듈·파츠를 장착하거나 해제하면 아이템이 이 격자로 이동합니다. 거점을 떠날 때 런타임 스냅샷을 보관하고 작전용 인스턴스에 복구합니다.

I 화면 정보 밀도

I 화면은 12×8 가방을 화면 중앙의 600×400px 격자로 크게 표시합니다. 50px 셀, 4칸 단위 굵은 구분선, 선택 카드 강조로 아이템 실제 점유 면적을 빠르게 비교할 수 있습니다.

  • 상단: 아이템 수, 사용 칸, 전체 칸, 남은 칸 요약
  • 중앙: 가변 크기 아이템 격자와 선택 상태
  • 하단: 사용률 막대
  • 오른쪽: 종류, 이름, 가로×세로, 점유 칸, 좌표, 인스턴스 설명

이 레이아웃은 GridInventoryWindowInventoryGridView에만 있으며 가방 배치·충돌 규칙에는 관여하지 않습니다. 따라서 화면 밀도와 셀 표현을 바꿔도 GridInventory의 상태 계약은 그대로 유지됩니다.

데이터 블록

InventoryItemDefinition은 다음 정보만 소유합니다.

  • 고유 item_id, 표시 이름, item_type
  • grid_size와 패널 색상
  • 장비·파츠·모듈을 가리키는 선택적 linked_resource
  • 검색과 UI에 표시할 설명

초기 가방 구성과 전체 격자 크기는 InventoryCatalog Resource에 있습니다. 새로운 아이템은 기존 .tres를 복제해 카탈로그 배열에 추가합니다.

배치 규칙

GridInventory는 UI와 분리된 런타임 제공자입니다.

  • 초기 아이템은 좌상단부터 첫 빈 공간에 자동 배치
  • can_place(size, position, ignore_id)로 경계와 충돌 검사
  • move_item(instance_id, position)으로 검증된 위치 이동
  • take_item(instance_id)으로 장착·소비 시스템에 아이템 전달
  • add_linked_resource()로 해제된 장비·모듈·파츠와 강화 상태 반환
  • can_add_linked_resource()로 교체 전 반환 공간 검사
  • export/restore_runtime_state()로 거점·작전 Scene 교체 사이 배치와 아이템 상태 보존
  • get_items_by_type(type)으로 장비 UI가 후보 검색
  • get_snapshot()으로 UI가 내부 Dictionary를 직접 소유하지 않고 복사된 상태 소비

모듈 타입이 1×1이 아니면 InventoryItemDefinition.is_valid() 단계에서 카탈로그 등록이 거부됩니다.

장비 화면 연결

가방은 장비 규칙을 알지 않습니다. U/E 화면이 아이템의 linked_resource와 선택적 런타임 상태를 장비 시스템에 전달하고, 장착이 성공한 경우에만 가방에서 제거합니다. 해제 시에는 장비 제공자가 돌려준 Resource와 강화 상태를 다시 격자에 배치합니다.

따라서 가방 배치 로직은 무기 태그, 파츠 소켓, 모듈 코스트와 독립적으로 교체할 수 있습니다.

활성화와 제거

  • inventory_enabled: 가방 런타임과 I 화면 설치
  • inventory_catalog_path: 초기 가방 카탈로그
  • equipment_customization_enabled: 가방 아이템을 장비에 연결하는 U 화면

장비 개조는 가방에 의존하지만 가방은 장비에 의존하지 않습니다. 순수 수집·소비 아이템 전용 게임에서도 같은 격자 제공자를 재사용할 수 있습니다.

U 장비 화면의 카드 선택

U 화면은 가방 스냅샷에서 장비·모듈·파츠만 카드로 투영합니다. 사용자는 아이템을 직접 선택한 뒤 장착하며, 카드에는 분류·태그·소켓·코스트와 현재 슬롯 호환 여부가 표시됩니다. 장착이 거부되면 원본 아이템은 가방에 남습니다.

I 화면의 마우스 드래그 배치, 회전, 여러 가방, 정렬, 영속 저장은 다음 UI·저장 단계에서 같은 공개 계약 위에 추가합니다.

검색 별칭

인벤, 인벤토리, 가방, 마비노기 가방, 아이템 칸, 패널 크기, 격자 충돌, 아이템 겹침, 12x8, I키, 모듈 한 칸