몰?.루();
[마인크래프트 모드 개발] 크리에이티브 탭 추가하기 본문
좀 귀찮다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | package com.toonraon.tistory.myfirstmod; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.registry.GameRegistry; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.init.Blocks; import net.minecraft.item.Item; import net.minecraft.item.ItemFood; import net.minecraft.item.ItemStack; @Mod(modid = "fm", name = "My First Mod", version = "1.0") public class MyFirstMod { public static Item myItem; public static Item myFood; public static Block myBlock; @EventHandler public void preInit(FMLPreInitializationEvent event) { // Item, Block init and registering // Config handling /* ADD ITEMS */ myItem = new MyItem(); myItem.setUnlocalizedName("MyItem"); // item.MyItem.name myItem.setTextureName("fm:myfirstitem"); GameRegistry.registerItem(myItem, myItem.getUnlocalizedName().substring(5)); // if you don't substring, you should to type /give Player fm:item.MyItem in game /* ADD BLOCKS */ myBlock = new MyBlock(Material.glass).setBlockName("MyBlock").setBlockTextureName("fm:myfirstblock"); // tile.MyBlock.name GameRegistry.registerBlock(myBlock, myBlock.getUnlocalizedName().substring(5)); /* ADD FOODS */ myFood = new ItemFood(5, 0.5f, true); // 허기, 포만감, 늑대먹이가능여부 myFood.setUnlocalizedName("MyFood"); GameRegistry.registerItem(myFood, myFood.getUnlocalizedName().substring(5)); /* ADD ITEMS TO CREATIVE TAB */ myItem.setCreativeTab(tabMyFirstMod); myBlock.setCreativeTab(tabMyFirstMod); myFood.setCreativeTab(tabMyFirstMod); } @EventHandler public void init(FMLInitializationEvent event) { // Proxy, Tile Entitiy, Entity, GUI and Packet Registering /* ADD RECIPE */ GameRegistry.addRecipe(new ItemStack(myItem), new Object[]{"SSS", // just like crafting GUI "SWS", "SSS", 'S', Blocks.stone, 'W', Blocks.wool}); // note the materials GameRegistry.addShapelessRecipe(new ItemStack(myFood), new Object[]{Blocks.stone, Blocks.dirt}); } @EventHandler public void postInit(FMLPostInitializationEvent event) { } /* ADD CREATIVE TAB */ public static CreativeTabs tabMyFirstMod = new CreativeTabs("tabMyFirstMod") { @Override public Item getTabIconItem() { return new ItemStack(myItem).getItem(); } }; } |
각각 아이템을 setCreativeTab해서 탭에 넣어줘야하고
아래엔 public static CreativeTab으로 탭을 만들어줘야한다.
getTabIconItem()이라는 오버라이딩된 함수를 이용하여 탭 아이콘을 바꿀 수 있다. 여기서 끝이 아니다.
그냥 이대로 하고 게임에 들어가면 탭이 ItemGroup.tabMyFirstMod라고 되어있다.
역시나 lang 파일에서 바꿀 수 있다.
itemGroup.tabMyFirstMod=My First Mod
이렇게하면 탭에 마우스를 가져다대면 My First Mod라고 뜬다.
'마인크래프트 > 마인크래프트 모딩' 카테고리의 다른 글
[마인크래프트 모드 개발] GUI 버튼 추가 (0) | 2016.12.17 |
---|---|
[마인크래프트 모드 개발] 간단한 GUI 띄우기 (0) | 2016.12.16 |
[마인크래프트 모드 개발] 레시피 추가, 음식 추가 (0) | 2016.11.11 |
[마인크래프트 모드 개발] 블럭 추가 (0) | 2016.11.10 |
마인크래프트 1.7.10 모딩 시작 (0) | 2016.11.10 |
Comments