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


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



안녕하세요 럽홀입니다.


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



패키지를 만듭니다.



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



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



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



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

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

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



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



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



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



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



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



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




광물이 생성되었습니다.

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

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



패키지를 생성해줍시다.



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



클래스를 생성합니다.



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



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

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

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



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



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



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


간단하게 서버 명령어를 추가하는걸 짜볼려고 합니다.




우리는 배운 사람이니 파일을 나눌줄 알아야 합니다.

패키지를 하나 생성합시다.



패키지 이름은 cmd로 두구요.



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



저는 역시.. 다른 모더들이 쓰는 방법대로 이름을 지었습니다.




생성자는 생성되어서 명령어들을 생성을 합니다.

CompareTo는 별로 중요하지 않으니 넘어가고

getCommandName은 말 그대로 명령어 이름을 가져오는 부분입니다.

Usage는 사용법을 출력하는 부분이구요.

Aliases는 명령어 목록을 불러오는 부분입니다.


가장 중요한 부분인 processCommand 부분입니다.

이 부분을 이용해서 커맨드를 이용한 마법의 구현... 이런것도 하시는 분들이 있던데, 뭐 그런것도 구현이 가능하긴 합니다만 간단하게

일딴 커맨드를 보낸 놈이 플레이어인지 확인합니다(서버가 커맨드를 보낼수도 있으니)

그리고 사람이 맞다면(EntityPlayer라는 상속하거나 그 클래스라면) 객체를 따로 생성 한 다음에

명령어의 길이값(그러니까 /loveholytech <샬라샬라>인데 샬라샬라 부분을 띄워쓰기로 나눠서 나온 길이값)이 0이면

Hello, Useername 을 출력하고

아니고 입력한게 있다면 그 입력값중 맨 처음값 (띄워쓰기 된 부분중 맨 처음)을 Input과 함께 출력하는 부분입니다.


나머지 부분은 별로 그렇게 중요한 부분이지 않아서 저렇게 나두고 써도 상관이 없어요.


LoveHolyTech.java로 돌아와서 이 부분을 추가시켜줍니다.

이 부분은 서버가 불러와졌을때 실행되는 이벤트인데

그때 이벤트에서 서버 명령어를 추가시킵니다. 그 명령어는 우리가 짰던 CommandCommon()입니다.



잘 되네요.



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


이전 포스팅을 보면 여러 광물을 추가하기 위해선 그 클래스를 여러개 복사, 붙여넣기식으로 만들었어야 하죠.

그런건 프로그래머들에게 비효율적이라고 욕을 쳐먹는 행동입니다.


그래서 약간 능독적인 ItemIngot클래스를 재구성하면서

Ore Dictionary에도 자동으로 등록되고 Infomation부분도 추가시키는걸 구현해보았습니다.


따로 메타태그는 사용하지 않았습니다. 1.8버전부터 메타태그가 사라진다고 해서요. 이렇게 하는게 쉽기도 합니다.



한줄식 자세하게 설명드리겠습니다.


13번째 줄

Item을 상속받은 ItemIngot 클래스를 설계합니다.


15에서 16번째 줄

능동적인 아이템 추가를 위해서 UnlocalizedName과 Infomation에 출력할 내용들을 저장하는 변수를 선언합니다.


17에서 24번째 줄

super를 사용해 Item클래스의 생성자를 호출하고

메터리얼 탭 부분에 이 아이템을 추가시킵니다.

그리고 argument(인자)로 받은 값을 선언한 변수에 대입시키고

광물 사전에도 등록을 시킵니다.


26에서 42번째 줄

저번에 설명드렸으니 이 부분은 생략합니다. 이전 강좌를 보시길 바랍니다.

바뀐 부분은 능동적인 아이템 생성을 위해서 받아온 값으로 설계하였습니다.


44에서 47번째 줄

이 부분이 새로 추가된 부분인데 마우스로 아이템 위에 올렸을 때 추가적으로 표시되는 정보를 추가할 수 있는 메소드입니다.

list 부분에 add로 String을 넣으면 내용이 추가됩니다.



이렇게 적으면 Infomation 부분에 색상을 입히는것도 가능합니다.



LoveHolyTechItems.java 의 registerItems라는 메소드입니다.

argument를 수정했으니 이 부분도 마찬가지로 수정을 해 줍시다.



en_US.lang 부분도 마찬가지로 수정해줍시다.


짜잔~



이걸 응용해서 광물들 마구 추가해보도록 합시다.


Q. 강좌 언제까지 쓰실껀가요 존나 영양가 ㅇ벗네;


A. 세렌이 모딩 가능할때까지

이 내용은 절대적으로 공식 입장이 아니고 제 개인적인 내용입니다.



저희들은 쉽게 시간을 내서 글을 쓸 수 있는게 아닙니다.


여기 등록되어 있는 모든 사람들(세렌,오딘,저,나크,사수생,모기)는 바쁜 사람들입니다.

특히 세렌과 오딘님은 직장을 다니고 있고 저 또한 직장을 가지고 있는 사람입니다.


이런 바쁜 일상속에서 다들 시간을 쪼개서 글을 쓰고 있는 겁니다.


세렌님이 말씀하셨듯이 이 블로그는 재생중에 있으며 계속 꾸준히 오시는 분들을 잡아두기에 매우 죄송한 상황입니다.

하지만 저희가 글을 복구하는건 의무가 아니라는 사실을 잊지 말아주셨으면 합니다.


쓸대 없는글 읽느라 수고했어.

'럽홀의 이야기' 카테고리의 다른 글

그들이 온다.  (9) 2014.11.23
다음 모딩 강좌가  (1) 2014.11.23
모바일에서 댓글이 이상하다고 하길래  (3) 2014.11.20
소개 :: RG 블로거들  (6) 2014.11.20
인간은  (1) 2014.11.17

+ Recent posts