본문 바로가기
Game Dev/MineCraft - Mod

블럭 하베스트레벨, 부술시 나오는 아이템 지정하기

by [방울] 2014. 12. 6.

 

 

말머리

 

대상 : 포지모드 개발환경 설정이 다 되어있고, 자바 프로그래밍을 어느정도 아시는분들

 

중간중간 패키지명이나 클래스명이 달라지거나, 패키지 구조, 클래스 위치가 달라질 수 있습니다.

구조가 달라서 적용에 문제가 있는부분은 방울크래프트 모드는 오픈소스상태이니 깃헙에서 구조를 확인해보시기 바랍니다.

또, 패키지 생성이나 클래스 생성에 대한 부분은 본인이 판단하여 센스있게 생성해주시기 바랍니다.

설명시 클래스위치는 패키지경로.클래스명 순으로 알려드립니다.

강좌시 몇몇 부분에서는 해당 클래스 소스 전체를 올려드리지만, 대부분의 상황에서는 해당 클래스의 일부 메소드 소스만 예시로 보여드립니다.

 

소스 작성시 일부 료형등에서 빨간 밑줄이 쳐질경우 해당 클래스를 직접 임포트해주시기 바랍니다.

일부 경우에는 임포트문을 알려드리지만, 대부분의 임포트문은 마인크래프트관련 클래스 또는 포지관련 클래스를 임포트하시면 정상작동합니다.

 

궁금한점이 있을경우 궁금한점이 생긴 포스트의 덧글로 질문해주시면 확인 후 바로 답변해드리도록 하겠습니다.

 

 

 

먼저 해당 블럭 클래스에 들어가줍니다.

저는 광석을 수정할것이므로 bellcraft.block.BlockOre에 진입하였습니다.

 

먼저 블럭을 캘 수 있는 레벨을 지정하겠습니다.

메인 메소드인 BlockOre에 다음과 같이 추가합니다.

 

setHarvestLevel("pickaxe", 1); // 철 곡괭이 이상등급으로만 캐짐

 

 

뒤에 인자로 0을 넣으면 아마 모든 곡괭이로 캐질겁니다.

1은 돌곡괭이 이상만 캘 수 있습니다만.. 금곡괭이는 나무곡과 동급인가봅니다. 안캐지네요.

2는 철곡괭이 이상

3은 다이아 이상

입니다.

 

 

그 다음 블럭을 부쉈을때 나오는 아이템을 지정해봅시다.

위와 똑같은 클래스에 다음 메서드를 추가합니다.

 

	@Override
	public Item getItemDropped(int metadata, Random random, int fortune) {
		return Items.ingotRandom; // 광석 부술시 인곳으로 나오게함
    }

 

 

위 메서드를 추가하시고 아이템을 반환하시면 됩니다.

끝.

간단하죠?

댓글