본문으로 건너뛰기
버전: Minecraft 26.2

첫 블록

엔트리포인트에서 선언한 크리스털과 크리스털 블록에는 아직 모양이 없습니다. 게임은 모양, 이름, 드롭을 바닐라와 같은 형식의 리소스 파일에서 읽어 옵니다.

리소스 파일을 빌드 때 만들기​

평범한 아이템과 정육면체 블록이라면 파일을 직접 쓰지 않아도 됩니다. build.gradle.kts에서 템플릿 예시(ruby, ruby_block)를 지우고 다음과 같이 적습니다.

build.gradle.kts
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, 없는 모델·텍스처, 빠뜨린 네임스페이스)를 게임을 켜기 전에 찾아냅니다. 설정 전체는 모드 제작 도구에서 확인할 수 있습니다.

한국어 이름​

영어 이름은 자동으로 만들어지지만, 다른 언어는 직접 작성해야 합니다.

src/main/resources/assets/crystal_garden/lang/ko_kr.json
{
"item.crystal_garden.crystal": "크리스털",
"block.crystal_garden.crystal_block": "크리스털 블록"
}

이 파일에는 다음 페이지들에서 새싹과 키 바인딩의 이름을 추가합니다.

직접 쓴 파일이 이깁니다​

src/main/resources에 같은 경로의 파일이 있으면 polyResources는 그 파일을 만들지 않습니다. 모양이 특별한 블록은 해당 파일만 직접 쓰면 되며, 다음 페이지의 크리스털 새싹이 그런 경우입니다.

Poly 모드 로더는 모드 jar의 assets/와 data/를 리소스 팩과 데이터 팩으로 자동 추가하므로 따로 등록할 필요가 없습니다. 경로 규칙은 리소스와 데이터에서 확인할 수 있습니다.

확인​

.\gradlew.bat build

runClient로 게임을 실행하면 크리에이티브 인벤토리의 재료 탭에서 크리스털을, 건축 블록 탭에서 크리스털 블록을 찾을 수 있습니다.

다음 단계​

자라는 블록을 만들어 봅니다.

Buy me a coffee