안녕하세요 로페카 최강 귀염둥이 럽홀입니다.
이번에는 클래스를 추가하거나 패키지를 만드는 부분은 안보여드리고 텍스트로만 적겠습니다.
제가 너무 힘들고.. 이번엔 제가 먼저 짜고 따로 강의를 드리는거라서 어쩔수가 없습니다.
이전 강의때 만든 정성을 갈아 만든 모델 텍스쳐는 여기다 넣어둡시다.
src/main/resources/assets/loveholytech/textures/blocks 입니다.
패키지와 클래스입니다. 이대로 만들어주시면 됩니다.
여기다가 저번에 JAVA로 저장한 내용을 넣고 약간만 변경시켜주시면 됩니다.
빨간색 체크되어 있는 부분은 원본 소스가 원래 에러를 뿜뿜하기 때문에 이렇게 수정을 해주셔야 합니다.
그리고 네모 부분은 우리가 렌더를 사용하기 위해서 필요한 부분인데 새로 짠 부분입니다.
setRotation은 저번에 썼던 techne 프로그램에서 파란색 구를 중심으로 돌아가는 부분입니다.
Shape2와 Shape3이 어처구니 부분이였으니 이 부분은 돌려줘야 하겠죠?
이제 TileEntityHandmill 부분입니다. 뭔가 추가된게 많죠?
틱 처리 부분(updateEntity)에는 rotation이 6.4를 넘으면 0으로 가게 합니다.
rotation는 회전을 관리해주는 변수이고 6.4를 넘었다는것은 한바퀴를 돌았다라는 뜻이기 때문입니다.
그리고 setRotation과 getRotation은 외부에서 rotation의 값에 접근하기 위해서 사용되는 메소드입니다.
그 아래 readFromNBT와 writeToNBT는 블록의 NBT에 내용을 기록하기 위해 사용됩니다.
그 밑에 두개의 메소드는 서버와 클라이언트 사이에 있는 데이터를 통합시키기 위해서 사용되는 부분입니다. 꼭 추가하셔야 합니다.
렌더링을 위한 패키지 loveholy.loveholytech.render 를 만들어줍시다.
그리고 밑에 있는 아이템 렌더링을 맡는 ItemRenderHandmill 과 RenderHandmill 부분을 생성합니다.
이제 렌더링을 맡는 RenderHandmill을 편집합시다.
ResourceLocation texture를 선언하여 아까 저장해놨던 경로를 입력해주시면 됩니다.
나머지 부분은 공간을 확보하고 텍스쳐를 입힌 다음에
타일엔티티에서 회전값을 받아서 모델을 렌더링하는 부분입니다.
ItemRenderHandmill 부분입니다.
아이템을 렌더링할때에는 좀 더 작게 렌더링해야 하기 떄문에 특수한 처리가 필요합니다.
이렇게 적어두시면 됩니다.
BlockHandmill 부분도 꽤 손을 봤습니다.
onBlockActivated는 오른쪽 클릭을 했을때 인데
이 부분에서 클릭했을때 회전값을 올려주기로 했습니다.
그리고 getRenderType은 따로 렌더링 하고 있다고 하기 위해서 -1을 리턴하였고
이게 완전히 네모 모양인가를 알려주는 메소드에도 마찬가지로 false
이게 일반 블록 렌더링을 쓸건지 물어보는 부분도 마찬가지로 false를 하게 해놨습니다.
렌더링을 위해서 이게 클라이언트인지, 서버인지 가려주는 부분이 필요합니다.
그 역할이 proxy라는 놈들이 해주는데요. 이 패키지를 추가하고
두개의 클래스를 추가해줍시다.
CommonProxy 부분입니다.
여긴 메소드가 있다~ 라는 것만 알려주면 되기 떄문에 내용은 텅텅 비워도 괜찮습니다.
ClientProxy 부분입니다. Client만 사용하는 것들을 여기다가 구현을 하시면 되는데요.
일딴 렌더러를 만들고 그걸 레지스트리에 등록을 합니다.
그리고 마찬가지로 아이템도 등록을 해주어야겠죠.
LoveHolyTech 클래스 부분으로 넘어와서 이 빨간색 상자 세개를 꼭 추가시켜줍니다.
맨 위에 부분은 별 상관이 없는데(나중에 쓰게 될거 같아서 넣었는데 쓰게 되면 설명해드리겠습니다.)
두번째 상자 부분은 이제 등록된 부분을 어딜 참고를 할지 선택하는 부분입니다.
그리고 세번째는 렌더러를 호출하는 부분이죠.
자 이제 완성. 실행해볼까염? ㅎㅎ
돌아라 낙오자여