강의 환경 : forge-1.7.10-10.13.4.1517-1.7.10

 

배경지식 및 선행과정 :

1. 무형 조합법(Shapeless Recipe) 및 화로 조합법(Smelting Recipe) 추가하기

 

강의 목표 :

1. 유형 조합법(Shaped Recipe)의 구성 요소를 이해한다.

2. 유형 조합법(Shaped Recipe)을 등록한다.

 

1. 유형 조합법

유형 조합법은 조합대의 아이템 배치에 따라 결과물이 바뀌는 조합법입니다. 3*3 이 최대 크기이고 그보다 작은 경우에는 모양은 유지한 채 자유롭게 옮겨도 같은 조합법으로 적용됩니다. 몇몇 조합법은 좌우로 대칭을 시킬 수도 있습니다. 조합법 자체는 항상 직사각형으로 정의되지만, '빈칸'을 설정할 수 있어서 다양한 모양을 가집니다. IC2처럼 해당 모드만의 유형 조합법을 따로 구현한 사례도 있고 광물 사전(Ore Dictionary)을 이용해서 목재와 같이 종류가 다양한 아이템을 모두 받아들이게 만든 조합법도 있습니다.

그림 1유형조합법

 

 

2. 유형 조합법 정의하기

1) 형태 정의하기

우선 유형 조합법을 어떻게 정의하는 지 알아보겠습니다. 유형 조합법은 형태와 구성요소로 이루어져 있습니다. 즉, 어떤 모양으로 어떤 아이템을 놓느냐에 따라 결과가 결정되는 것입니다. 형태를 어떻게 구성하는지 그 원리만 파악하면 각 위치에 아이템을 지정해서 프로그램 상에서 조합법을 추가하는 것은 크게 어렵지 않습니다.

앞서 모든 조합법은 직사각형이 기본 형태라고 말씀드렸습니다. 가로 N, 세로 M의 조합법은 M개의 길이 N짜리 문자열로 그 형태가 정의됩니다. 즉, 직사각형으로 표현한 후 위쪽부터 행 별로 문자열을 늘어놓은 꼴이 됩니다. 말로만 하면 굉장히 복잡하기 때문에 예를 통해 알아보겠습니다.

A

  

A

A

 

A

A

A

위와 같은 조합법이라면 "A ", "AA ", "AAA"으로 적을 수 있습니다. 직사각형의 조건을 맞추기 위해서 공백을 추가한 것을 주의해서 보세요.

 

A

 

B

 

B

이번에는 " A ", "B B"으로 적을 수 있습니다. 반드시 정사각형일 필요도 없습니다. 서로 다른 알파벳은 서로 다른 아이템을 의미합니다. 이번에도 A의 양쪽에 공백이 있으니 주의하세요.

 

A

A

B

B

이 조합법은 "AA", "BB"으로 표기 되고,

A

A

 

B

B

 
   

이 조합법은 "AA ", "BB ", " "으로 표기됩니다. 얼핏 보면 두 조합법이 같아 보이지만 첫 번째 조합법은 크기가 2*2이고, 두 번째 조합법은 3*3입니다. 그렇기 때문에 아래의 조합법은 다음과 같은 배치에서 조합이 되지 않습니다.

그림 2두 조합법의 차이

 

2) 구성 아이템 정의하기

다양한 예를 다루면서 주의점도 파악했기 때문에, 이제 각 문자에 대해서 아이템을 지정하는 방법을 가르쳐드리겠습니다. 형태를 정의하는 과정에서 여러 문자를 사용하여 다른 아이템이란 것을 나타냈기 때문에, 각 문자 별로 구성 아이템을 지정해주면 됩니다. 이때 주의하실 점은 문자열(String)이 아닌 문자(char)에 값을 대응 시켜야 한다는 점입니다.

"aa", "bb", 'a', new ItemStack(Items.potato), 'b', new ItemStack(Items.carrot)

위에서 언급된 조합법을 나타내면 위와 같습니다. 각 문자는 "가 아닌 '을 이용해서 문자(char)로 표현했다는 것을 다시 확인해주시길 바랍니다.

 

 

3. 유형 조합법 추가하기

유형 조합법을 추가하는 위치나 상태는 이전 강의와 동일합니다. 기본 모드 파일도 동일한 상태입니다.

 

GameRegistry.addShapedRecipe(ItemStack output, Object... params)

ItemStack output : 조합법의 결과인 ItemStack입니다.

Object... params : 조합법의 형태와 재료를 결정하는 다수의 문자열(String), 문자(char), ItemStack입니다.

조합법을 추가하는 함수도 무형 조합법과 거의 같습니다. 다만 params에 들어갈 인자가 지금까지 살펴본 문자열(String), 문자(char), 아이템스택(Item Stack)의 조합입니다.

구체적인 부분은 위에서 모두 살펴보았기 때문에 간단한 예를 통해 강의를 마무리하도록 하겠습니다. 다음의 코드가 그림에 해당하는 조합법을 추가합니다.

GameRegistry.addShapedRecipe(new ItemStack(Items.apple, 4), "ab", "ba", 'a', new ItemStack(Items.potato), 'b', new ItemStack(Items.carrot));

그림 3조합법 예

동물

컨피그가 많이 변화되었습니다. Wiki 참조

토끼가 기본적으로 본 모드의 영향을 받습니다.

기계

크랭크

대형 크랭크에는 크랭크를 돌릴 수 있고, 길들여진 동물만이 묶일 수 있습니다.

벨트

크리에이티브 탭에서 기본적으로 16의 길이를 가집니다.

더 이상 블록의 형태로 존재하지 않고, 두 축을 연결하는 용도로 사용됩니다. 두 축이 같은 높이에 있고 거리가 8이하면 벨트를 이용해서 연결할 수 있습니다.

인공지능

전반적인 코드를 개선했습니다.

디버그 돋보기를 핫바에 놓으면, 동물들이 도망가지 않습니다.

버그 개선

각종 크래쉬 및 렌더링 오류

여물통이 부서졌을 때, 내부 아이템이 나오지 않던 문제

동물이 Dead bush를 먹지 않습니다.

닭이 자신이 얻은 씨앗으로부터 성장 가속 효과를 받지 않습니다.

호환성

NEI

모드에서 추가된 다양한 조합법을 지원합니다.

GUI에서 번역 파일을 지원합니다.

기타

아주 다양한 동물 추가 모드랑 호환될 수 있습니다. Wiki 참조

'마인크래프트 자작 모드 > 배고픈동물들' 카테고리의 다른 글

2.0 업데이트  (3) 2015.08.10
1.0.4.1 업데이트  (6) 2015.02.06
1.0.4.0 업데이트  (2) 2015.02.05
1.0.3.1 업데이트  (0) 2015.02.05
1.0.3 업데이트  (1) 2015.02.05

이전의 토지 중개사 모드에 여러 버그가 있었고, 사용성도 좋지 않아 여러 부분에서 개편을 진행했습니다. 가장 치명적이었던 청크가 로딩이 안되는 버그(ㅡㅡ;), 그리고 자신이 추가한 청크를 확인하기 힘들고 땅문서를 잃기도 쉬웠던 문제를 종합적으로 개선했습니다.

 

1. 토지 대장

토지 중개사 모드는 2가지 아이템을 추가합니다. 하나는 토지 대장이고 나머지 하나는 땅 문서입니다. 이 두 아이템만 있으면 청크 로딩을 제어할 수 있습니다. 먼저 토지 대장에 대해서 알아보도록 하겠습니다.

 


토지 대장은 위의 조합법으로 만들 수 있습니다.

 


우 클릭으로 토지 대장을 열어볼 수 있고, 플레이어는 처음 허가된 청크가 0개 임을 알 수 있습니다. OP 권한을 가진 플레이어는 제한이 없습니다.

 

 

2. 땅문서

땅 문서는 허가되는 청크의 수를 증가시켜줍니다. 다만, 기본적으로는 만들 수 없고 서버 관리자가 다른 모드를 이용해서 적절한 레시피를 추가해주시면 됩니다.

 


각각의 땅문서는 사용하기 위해서 레벨 제한이 있습니다. 즉 자신에게 허가된 청크 수에 맞는 레벨을 가진 땅 문서를 사용해야만 추가 청크를 얻을 수 있습니다. 크리에이티브 탭에는 16종의 땅문서가 있는데, 데미지(Damage) 값만 달리하면 상위의 땅문서도 쉽게 만들 수 있습니다.

 

알맞은 땅문서를 사용하면, 추가적인 청크가 허가됩니다. 토지 대장에서의 수치도 증가합니다.


 

3. 청크 관리

토지 대장을 손에 들고 좌클릭을 하면 자신이 있는 청크를 로드하게 됩니다. 핫바에 토지 대장을 놓고 있으면 흰색 경계가 표시됩니다.


자신에게 허가된 개수 이내로 다수의 청크를 로드할 수 있고, 이미 로드된 청크 안에서 좌클릭을 다시 하면 로드가 취소됩니다.

 

토지 대장의 GUI에서도 로드된 청크들을 확인할 수 있고, 각 청크 좌표 우측의 X 아이콘을 누르면 해당 지점으로 가지 않아도 로딩을 취소할 수 있습니다.

'마인크래프트 자작 모드 > 토지중개사' 카테고리의 다른 글

토지 중개사 모드 소개  (1) 2015.02.13

+ Recent posts