提供: Minecraft Modding Wiki
この記事は"Minecraft Forge Universal 10.12.0.xxx~"を前提MODとしています。 |
防具の追加
簡単な防具の追加方法
ソースコード
- SampleItemCore.java
package 等省略 @Mod(modid="SampleItemCore", name="SampleItemCore", version="1.0") public class SampleItemCore { public static Item sampleItem; @EventHandler public void preInit(FMLPreInitializationEvent event) { //アイテムのインスタンス生成 sampleItem = new SampleItemColor() .setCreativeTab(CreativeTabs.tabMisc)/*クリエイティブのタブ*/ .setUnlocalizedName("SampleItemColor")/*システム名の登録*/ .setTextureName("potion_bottle_drinkable")/*テクスチャの指定(ここではポーションのものを指定している)*/ //アイテムの登録。登録文字列はMOD内で被らなければ何でも良い。 GameRegistry.registerItem(sampleItem, "sampleItemColor"); } }
- SampleItemArmor.java
package 等省略 public class SampleItemColor extends Item { private IIcon overIcon; private String overIconName; protected ItemChangeColorPartiallyFromDye(){ overIconName="potion_overlay"; } @SideOnly(Side.CLIENT) public boolean requiresMultipleRenderPasses(){ return true;//ここで2つのテクスチャを重ねられるようにする。 } @SideOnly(Side.CLIENT) public IIcon getIconFromDamageForRenderPass(int damage, int pass){ return pass > 0 ? overIcon : super.getIconFromDamageForRenderPass(damage, pass);//RenderPassに応じて渡すアイコンを変えている } @SideOnly(Side.CLIENT) public int getColorFromItemStack(ItemStack stack, int pass){ return pass==1?ItemDye.field_150922_c[stack.getItemDamage()]:16777215;//ここではRenderPassが1の時だけItemStackのDamage値に応じてItemDyeの色を渡している。 } @SuppressWarnings("unchecked") @SideOnly(Side.CLIENT) public void getSubItems(Item item, CreativeTabs tab, List list) { for(int i = 0; i < 16; i++)list.add(new ItemStack(item,1,i));//クリエイティブタブへの登録 } public String getUnlocalizedName(ItemStack par1ItemStack) { return super.getUnlocalizedName() + "_" + ItemDye.field_150923_a[par1ItemStack.getItemDamage()];//翻訳キーとなる名前をダメージ値で変えている。 } public void registerIcons(IIconRegister register){ super.registerIcons(register); overIcon=register.registerIcon(overIconName); } public int getMetadata(int p_77647_1_) { return p_77647_1_;//Metadataを返す。 } }
解説
基本的に1.7のアイテム追加と同じ要領で追加できる。 その他の解説はコメントを参照のこと。