Incommmmmmmmmmmmmmmming!!!!



잇힝 ㅇ럽홀



저번에 말씀드렸다시피 레지스트리 부분을 싹 다 넘겨버렸습니다.


넘겨진 부분의 소스입니다. 참 보기 좋아졌졈.



클래스를 하나 만듭시다. 이게 나중에 기계가 될거에요.



블록 이름은 핸드밀... 맷돌이라는 뜻이졈



소스에 주석을 대충 떡칠해봤습니다. 아직 타일 엔티티를 추가 안시켰으니 보통 블럭이랑 소스가 거진 다를게 없는데

icon 부분이 배열로 선언되어 있습니다. 이건 왜냐? 나중에 보심 알게 됩니다.



패키지를 하나 만듭니다.



패키지 이름은 타일엔티티. 타일엔티티를 모아둘 패키지입니다.



타일엔티티에 클래스를 하나 만듭시다.



핸드밀이 가지는 타일엔티티입니다.


간단하게 틱이 연산되는 부분에 volume값을 계속 올려주다가 5000이 넘으면 다시 볼륨값을 0으로 셋하는 부분을 짰습니다.

밑에 부분은 볼륨에 접근하는 부분이구요. 간단하죠?




다시 블록으로 돌아와서.. 아까 오타난 protected를 public으로 고쳐줍니다 (ㅠㅠ)

그리고 생성자의 안쪽 4번째 줄을 보면 타일엔티티를 등록하는 부분이 있습니다. 중요하니 꼭 넣으세염!

그리고 타일 엔티티를 생성하는 부분입니다. 이렇게 리턴을 해주시면 됩니다.

다음에는 onBlockActivated라는 메소드인데요. 

이 메소드는 블록이 활성화되었을때(즉 오른쪽 클릭을 하였을 때) 작동하는 메소드입니다.

저는 그 작동된 곳에 타일엔티티(당연히 그 블록은 죽었다 깨어나도 핸드밀이라는 타일 엔티티를 가지겠졈)를 생성하고

volum값을 받아와서 플레이어에게 출력시켜주는 코드를 짰습니다.



핸드밀의 텍스쳐부분은 이렇게 만들었습니다. 나중에 보시면 이해하실거에염.




이것도 역시 Blocks에 등록시켜주어야 합니다.



짜잔!

정면에서 찍은 부분입니다.



오른쪽에서 쳐다봤습니다.



뒷면에서 쳐다봤습니다.



아랫면입니다.


즉 아이콘을 등록시키는 부분과 getIcon을 보면

이게 면 마다 다른 텍스쳐를 입힐수 있다는 겁니다(!!!!!!!)

우왕 짱이다.




오른쪽 클릭을 하니 Volume값을 계속 출력을 해줍니다.


오옹. 다음엔 커스텀 텍스쳐를 한번 입혀보죵.



럽홀하세요. 안녕입니다.



클래스를 하나 추가해줍시다.


Registry를 관리하는 클래스를 하나 추가해봅시다. 나중에 여유나면 Registry 여기로 다 옮겨야겠군요.



요런 정적 메소드를 하나 만듭니다. 설명은 주석으로 되어있죠?



메인에서 init 이벤트일때 Furnace 레시피를 추가하도록 합시다.


구워진다



구워졌다.




이걸 같이 하면서 타일 엔티티를 설명할지 타일엔티티를 먼저 짜고 설명할지 고민되고 있습니다.


일단 강좌 내용이 따라하기만 하면 어렵지 않다는 사실을 판단하였고 이정도 설명으로 계속 쓰도록 하겠습니다.



안녕하세요 럽홀입니다.


괴를 만들어봤으니 광물을 추가시켜봐야겠졈.



패키지를 만듭니다.



블록을 관리하는 패키지를 만듭니다.



그 패키지 안에 클래스를 생성합니다.



광물 블럭을 생산하는 클래스를 만듭니다.



생성자는(오타가 났는데 protected가 아니라 public입니다.) 이 광물의 속성과 여러가지를 설정합니다. 읽어 보시면 알아요.

맨 밑에 아이콘을 등록하는 부분 두개가 있습니다. 

아이콘은 서버에 필요 없기 때문에 Side.CLIENT를 박아서 클라이언트에만 동작하게 설정해둡니다. (안그럼 서버 동작시 에러남)



클래스를 하나 더 생성을 합니다.



블록들을 관리해주는 클래스입니다.



여기서 구리 광물을 추가시켜줍니다.



당연히 아이템 처럼 이벤트도 등록시켜주어야 합니다.



당연하게도 언어 파일도 수정을 해 줍시다.



아이콘을 등록시켰으니 저 경로에 아이콘을 나두시면 됩니다.




광물이 생성되었습니다.

하지만 이걸로 끝이 아닙니다. 

광물은 크리탭에서 꺼내오는게 아니라 땅에 박혀 있어야 하기 때문이죠.



패키지를 생성해줍시다.



세계를 관리하는 패키지를 생성해줍시다.



클래스를 생성합니다.



클래스 이름은 광물을 젠시키는 역할이다 라고 해서 OreGenerator로 하였습니다.



월드가 생성될때 generate가 발생을 하고 이 월드가 무슨 월드인지 확인하는 부분을 넣었습니다.

그리고 확인이 끝나면 for문을 통해서 광물을 젠 시켰습니다.

chunkY의 nextInt를 잘 조절하면 광물 높이를 변경할 수 있습니다.



이벤트를 만들었으니 등록시켜야겠죠.



오오 오지게 많이 나오는구만 -ㅅ-;;

+ Recent posts