첫 블록
엔트리포인트에서 선언한 크리스털과 크리스털 블록에는 아직 모양이 없습니다. 게임은 모양, 이름, 드롭을 바닐라와 같은 형식의 리소스 파일에서 읽어 옵니다.
리소스 파일을 빌드 때 만들기
평범한 아이템과 정육면체 블록이라면 파일을 직접 쓰지 않아도 됩니다. build.gradle.kts에서 템플릿 예시(ruby, ruby_block)를 지우고 다음과 같이 적습니다.
polyResources {
item("crystal") { texture = "minecraft:item/amethyst_shard" }
block("crystal_block") {
texture = "minecraft:block/amethyst_block"
minedWith = "pickaxe"
}
}
build를 실행하면 다음 파일이 build/generated/poly-resources/main에 만들어지고 모드 jar에 들어갑니다.
| 선언 | 만들어지는 파일 |
|---|---|
item("crystal") | 아이템 정의, 아이템 모델, 영어 이름 Crystal |
block("crystal_block") | 블록 상태, 블록 모델(cube_all), 블록 아이템 정의, 전리품(자기 자신을 떨어뜨림), 영어 이름 Crystal Block |
minedWith = "pickaxe" | 곡괭이로 캐는 블록 태그에 추가합니다 |
텍스처는 바닐라 자수정의 것을 빌려 씁니다. 직접 그린 16×16 PNG를 쓰려면 src/main/resources/assets/crystal_garden/textures/block/crystal_block.png에 두고 texture 줄을 지우세요.
build는 checkPolyResources로 리소스 실수(대문자 파일 이름, 깨진 JSON, 없는 모델·텍스처, 빠뜨린 네임스페이스)를 게임을 켜기 전에 찾아냅니다. 설정 전체는 모드 제작 도구에서 확인할 수 있습니다.
한국어 이름
영어 이름은 자동으로 만들어지지만, 다른 언어는 직접 작성해야 합니다.
{
"item.crystal_garden.crystal": "크리스털",
"block.crystal_garden.crystal_block": "크리스털 블록"
}
이 파일에는 다음 페이지들에서 새싹과 키 바인딩의 이름을 추가합니다.
직접 쓴 파일이 이깁니다
src/main/resources에 같은 경로의 파일이 있으면 polyResources는 그 파일을 만들지 않습니다. 모양이 특별한 블록은 해당 파일만 직접 쓰면 되며, 다음 페이지의 크리스털 새싹이 그런 경우입니다.
Poly 모드 로더는 모드 jar의 assets/와 data/를 리소스 팩과 데이터 팩으로 자동 추가하므로 따로 등록할 필요가 없습니다. 경로 규칙은 리소스와 데이터에서 확인할 수 있습니다.
확인
- Windows (PowerShell)
- macOS · Linux (bash)
.\gradlew.bat build
./gradlew build
runClient로 게임을 실행하면 크리에이티브 인벤토리의 재료 탭에서 크리스털을, 건축 블록 탭에서 크리스털 블록을 찾을 수 있습니다.
다음 단계
자라는 블록을 만들어 봅니다.