저번에 패키지가 맘에 안들어서 패키지좀 바꿨습니다. (Bell.BellCraft -> bellcraft)
강좌를 보는데 오해 없으시길 바랍니다.
또한, 제가 개발하는 모드 위주로 강좌를 올리니 변수명, 클래스명, 패키지명이 독자분들과 다를 수 있습니다.
상황에 맞게 수정하는 센스를 가집시다. *^____^*
이젠 아이템을 생성해봅시다!
먼저, 아이템 관련 클래스를 모아둘 패키지를 생성해줍니다.
저는 bellcraft.items 에 아이템관련 클래스를 다 몰아둘 예정입니다.
그 다음 bellcraft.items 패키지에 Items 클래스를 추가해줍니다.
소스는 아래와 같습니다.
저는 먼저 랜덤 선물 상자를 만들어보려고 합니다.
package bellcraft.items; import cpw.mods.fml.common.registry.GameRegistry; import net.minecraft.item.Item; public class Items { public static Item RandomBox; public static void registerItems() { RandomBox = new ItemRandomBox(); GameRegistry.registerItem(RandomBox, "RandomBox"); } }
위와 같이 소스를 입력하면 아마 ItemRandomBox에 빨간 밑줄이 쳐져있을겁니다.
이유는 해당 클래스가 존재하지 않으므로 에러가 발생할 수 밖에 없습니다.
bellcraft.items 패키지에 ItemRandomBox 클래스를 추가해줍니다.
package bellcraft.items; import bellcraft.BellCraft; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; public class ItemRandomBox extends Item { public ItemRandomBox() { super(); setCreativeTab(CreativeTabs.tabMisc); //기타 탭에 아이템 추가 } @Override public String getUnlocalizedName() { return BellCraft.MODID + ".RandomBox"; //아이템 고유이름 지정 } @Override public String getUnlocalizedName(ItemStack item) { return BellCraft.MODID + ".RandomBox"; //아이템 고유이름 지정 } @Override public void registerIcons(IIconRegister register) { this.itemIcon = register.registerIcon(BellCraft.MODID + ":ItemRandomBox"); //아이템의 이미지 경로지정 } }
그 다음 ItemRandomBox 클래스에 위와같이 코딩해줍니다.
다음으로 이제 모드가 시작할때 아이템을 등록하기위해 모드 메인클래스(bellcraft.BellCraft)에 아래 소스를 추가해줍니다.
선언부분과 소스부분은 직접 나눠서 작성하세요.
import cpw.mods.fml.common.event.FMLPreInitializationEvent; @EventHandler public void PreInitialize(FMLPreInitializationEvent event) { Items.registerItems(); //아이템 등록 }
그 다음, 아이템의 텍스쳐 파일을 추가하기위해 src/main/resources 폴더에 패키지를 추가해줍니다.
패키지명은 assets.bellcraft.textures.items 로 지정합니다.
그 다음, 방금 생성한 패키지에 텍스쳐파일을 추가해줍니다.
저는 그림실력이 없어서 일단 급한데로 다른모드에 있는 텍스쳐를 빼왔습니다. (....)
그런다음 이클립스에서 디버깅으로 모드가 잘 작동하는지 확인해봅니다.
그럼 위와같이 아이템이 정상적으로 등록된것을 볼 수 있으나, 아이템 이름이 지정되지 않았습니다.
이젠 언어등록을 위해 리소스폴더에서 패키지를 생성해줍니다.
패키지명은 assets.bellcraft.lang 입니다.
그 다음, 해당 패키지에 파일을 하나 추가해줍니다. (주의. 클래스 아님)
파일명은 ko_KR.lang 으로 생성해줍니다. (한국어)
그런데, 초기 언어설정은 영어고, 설정된 언어에 해당하는 언어파일이 없을경우 영어로 출력되므로 en_US.lang 파일도 생성합니다.
그 다음 한국어 언어파일에는
BellCraft.RandomBox.name=랜덤 아이템 박스
로 작성해주고, 영어 언어파일에는
BellCraft.RandomBox.name=Random Item Box
로 작성해주시면 됩니다.
난 다국어를 지원하는 모드를 만들 생각이 없다! 하시는분들은 그냥 영어 언어파일을 생성하신 후, 그곳에 그냥 한국어로 입력하시면 됩니다.
그 다음 언어설정에서 한국어를 설정하고 확인하시면 됩니다.
잘 등록되었네요!
다른 아이템들도 위와 같은 방법으로 추가하시면 됩니다.
아이템에 기능을 넣는건 다음에 강좌로 올리도록 할게요.
'Game Dev > MineCraft - Mod' 카테고리의 다른 글
모드 패키지 정렬하기 (0) | 2014.11.30 |
---|---|
한 슬롯에 아이템을 최대 몇개 가질 수 있는지 지정하기 (0) | 2014.11.30 |
크리에이티브 탭 생성하기 (0) | 2014.11.30 |
방울의 모드개발 강좌 독자분들을 위한 소스코드 중간점검 (6) | 2014.11.29 |
마인크래프트 모드 개발환경 구축 (26) | 2014.11.28 |
댓글