提供: 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 sampleItemArmor; @EventHandler public void preInit(FMLPreInitializationEvent event) { //アイテムのインスタンス生成 sampleItem = new SampleItemArmor() .setCreativeTab(CreativeTabs.tabCombat)/*クリエイティブのタブ*/ .setUnlocalizedName("SampleItemArmor")/*システム名の登録*/ .setTextureName("samplemod:sample_itemArmor")/*テクスチャの指定*/ //アイテムの登録。登録文字列はMOD内で被らなければ何でも良い。 GameRegistry.registerItem(sampleItemArmor, "sampleItemArmor"); } }
- SampleItemArmor.java
package 等省略 public class SampleItemArmor extends ItemArmor { public static final String HELMET_TEXTURE = "samplemod:textures/armor/helmet.png";//armorフォルダである必要はない。 public static final String CHESTPLATE_TEXTURE = "samplemod:textures/armor/plate.png"; public static final String LEGGINGS_TEXTURE = "samplemod:textures/armor/leg.png"; public static final String BOOTS_TEXTURE = "samplemod:textures/armor/boots.png"; //renderIndexは以下でArmorTextureを指定する場合はどんな値でも良い。 //0 is cloth, 1 is chain, 2 is iron, 3 is diamond and 4 is gold. public SampleItemArmor(ItemArmor.ArmorMaterial armorMaterial, int renderIndex, int type) { super(armorMaterial, renderIndex, type); } //ItemStack:防具のItemStack, Entity:装備してるEntity, Slot:装備してるスロット, Layer:オーバーレイかどうか @Override public String getArmorTexture(ItemStack stack, Entity entity, int slot, String layer) { if (4 - slot == 0) { return HELMET_TEXTURE; } if (4 - slot == 1) { return CHESTPLATE_TEXTURE; } if (4 - slot == 2) { return LEGGINGS_TEXTURE; } if (4 - slot == 3) { return BOOTS_TEXTURE; } return ""; } }
解説
基本的に1.7のアイテム追加と同じ要領で追加できる。
- getArmorTextureメソッド
Forgeが用意したアーマーの見た目のテクスチャを取得するメソッド。
これで適切な文字列を返さないと、renderIndexで指定した数値のバニラテクスチャが適用される。
メソッド内の処理は、スロット別にテクスチャ文字列を変えている。スロットが逆順なので、4-slotで判定している。
この判定は緩いので、場合によって適宜判定を追加したほうが良い。
- テクスチャの配置場所
samplemod:textures/armor/helmet.png
のように記述した場合、テクスチャは、
assets\samplemod\textures\armor\helmet.png
というディレクトリ構造で配置すればよい。