120 lines
3.6 KiB
Markdown
120 lines
3.6 KiB
Markdown
# 🖼️ IconExporter
|
|
|
|
마인크래프트 아이템/블록 아이콘을 PNG 파일로 추출하는 클라이언트 전용 NeoForge 모드입니다.
|
|
|
|

|
|

|
|

|
|
|
|
---
|
|
|
|
## ✨ 주요 기능
|
|
|
|
- 🎨 **고품질 아이콘 추출** - 게임 내 실제 렌더링과 동일한 품질
|
|
- 📦 **모드 아이템 지원** - 바닐라 + 설치된 모든 모드 아이템 추출
|
|
- ⚡ **대량 추출** - 틱 기반 큐 시스템으로 게임 프리즈 없이 대량 처리
|
|
- 🖼️ **투명 배경** - PNG 알파 채널 지원
|
|
- 📏 **크기 조절** - 16x16 ~ 512x512 커스텀 크기
|
|
|
|
---
|
|
|
|
## 💻 사용법
|
|
|
|
### 커맨드 목록
|
|
|
|
| 커맨드 | 설명 |
|
|
| ------------------------------------ | --------------------------- |
|
|
| `/iconexport all` | 모든 아이템 추출 |
|
|
| `/iconexport mod <modid>` | 특정 모드 아이템만 추출 |
|
|
| `/iconexport id <namespace:item>` | 단일 아이템 추출 |
|
|
| `/iconexport size <16-512>` | 아이콘 크기 설정 (기본: 64) |
|
|
| `/iconexport overwrite <true/false>` | 덮어쓰기 설정 |
|
|
| `/iconexport listmods` | 등록된 모드 목록 확인 |
|
|
| `/iconexport status` | 현재 상태 확인 |
|
|
| `/iconexport cancel` | 진행 중인 작업 취소 |
|
|
|
|
### 예시
|
|
|
|
```bash
|
|
# Create 모드 아이템 추출 (64x64)
|
|
/iconexport mod create
|
|
|
|
# 128x128 크기로 변경 후 바닐라 아이템 추출
|
|
/iconexport size 128
|
|
/iconexport mod minecraft
|
|
```
|
|
|
|
---
|
|
|
|
## 📁 출력 구조
|
|
|
|
아이콘은 `.minecraft/icons/` 폴더에 **blocks/items**로 구분되어 저장됩니다.
|
|
완료 후 자동으로 ZIP 파일이 생성됩니다.
|
|
|
|
```
|
|
.minecraft/
|
|
├── icons/
|
|
│ ├── minecraft/
|
|
│ │ ├── blocks/
|
|
│ │ │ ├── stone.png
|
|
│ │ │ └── ...
|
|
│ │ └── items/
|
|
│ │ ├── diamond.png
|
|
│ │ └── ...
|
|
│ └── create/
|
|
│ ├── blocks/
|
|
│ │ ├── brass_casing.png
|
|
│ │ └── ...
|
|
│ │ └── items/
|
|
│ │ ├── brass_ingot.png
|
|
│ │ └── ...
|
|
│ └── create_20251226_181500.zip ← 자동 생성
|
|
└── ...
|
|
|
|
---
|
|
|
|
## 🛠️ 기술 스택
|
|
|
|
| 기술 | 설명 |
|
|
| -------------------- | --------------------- |
|
|
| **NeoForge** | Minecraft 모딩 플랫폼 |
|
|
| **Kotlin** | 주 개발 언어 |
|
|
| **Kotlin for Forge** | NeoForge Kotlin 지원 |
|
|
| **FBO Rendering** | 오프스크린 렌더링 |
|
|
|
|
---
|
|
|
|
## 📁 구조
|
|
|
|
```
|
|
|
|
IconExporter/
|
|
├── src/main/
|
|
│ ├── kotlin/com/beemer/iconexporter/
|
|
│ │ ├── command/ # 커맨드 처리
|
|
│ │ ├── export/ # 추출 관리자
|
|
│ │ ├── render/ # FBO 렌더러
|
|
│ │ └── IconExporter.kt # 메인 모드
|
|
│ └── resources/
|
|
│ └── META-INF/ # 모드 메타데이터
|
|
└── build.gradle
|
|
|
|
````
|
|
|
|
---
|
|
|
|
## ⚠️ 주의사항
|
|
|
|
- **클라이언트 전용** - 서버에서는 동작하지 않습니다
|
|
- **월드 필요** - 싱글플레이어 월드에 접속한 상태에서 사용해야 합니다
|
|
- **렌더링 부하** - 대량 추출 시 일시적인 FPS 저하가 있을 수 있습니다
|
|
|
|
---
|
|
|
|
## 🚀 빌드
|
|
|
|
```bash
|
|
./gradlew build
|
|
````
|
|
|
|
빌드된 JAR: `build/libs/iconexporter-1.0.0.jar`
|