1. 게임 내에서 아이템 스택

아이템 스택은 모드를 개발함에 있어 아주 중요한 기본 개념입니다. 쉽게 말하면 가방의 한 칸을 차지하는 대상이 모두 아이템 스택입니다. 같은 아이템(Item)이라고 할 지라도 서로 개수가 다를 수 있고, 도구처럼 내구도나 부여된 마법이 다를 수도 있습니다. 이런 요소들이 모여 하나의 아이템 스택을 정의합니다.

그림 1 서로 다른 아이템 스택

위의 그림에서 첫 번째 줄은 내구도가 다른 도구와 부여된 마법(Enchantment)이 다른 도구를 보여줍니다. 내구도는 damage라는 변수에 값이 저장이 되고 마법 부여의 경우는 NBT라는 특수한 형태로 값이 저장됩니다. 두 번째 줄에서 블록도 아이템 스택이 될 수 있음을 확인할 수 있습니다. 세 번째 줄에서처럼 아이템 스택에는 stacksize라는 개수 정보를 가지고 있는 변수도 있습니다. 마지막 줄의 염료들은 서로 같은 아이템(Item) 종류입니다. 다만 이들 모두 damage 값이 달라서 그에 따라 완전히 다른 아이템으로 분류됩니다. 이런 아이템들은 하위 아이템(sub item)이라고 부릅니다.

2. 프로그램 내에서 아이템 스택

프로그램 내에서 이러한 아이템 스택을 생성하는 법을 간략하게 소개하겠습니다. 위에서 살펴본 아이템 스택의 요소 중에 가장 중요한 것은 "아이템(Item) 종류", "개수(stack size)", "내구도(damage)"입니다. ItemStack의 생성자도 위의 세 변수를 기본적으로 받아들입니다.

public ItemStack(Item item, int stacksize, int damage)

public ItemStack(Item item, int stacksize) : damage=0으로 설정

public ItemStack(Item item) : stacksize=1, damage=0으로 설정

생성자는 크게 3가지가 이용됩니다. 세 성분 모두 받는 생성자부터 아이템 종류만 받는 생성자까지 모두 사용할 수 있습니다. 인자를 1개나 2개만 받는 생성자는 개수(stacksize)나 내구도(damage)를 정해진 기본값으로 이용하기 때문에 정확히 어떤 값으로 설정되는지 상기하시기 바랍니다. 마인크래프트에서 미리 정의된 아이템 종류는 Items 클래스 내부에서 찾을 수 있습니다.

+ Recent posts