提供: Minecraft Modding Wiki
このページは
・ModLoader
・MinecraftForge
を使っていることを前提に書かれています。
※Forgeを使わない方法は私は知りません。詳しい人お願いします・・。
ソース解説
サンプルソース内部に説明をしています。
mod_hogearmor
HogeArmor
と、2つのクラスを作成しています。
※SpriteID無限化を使っています。
詳細はSpriteID無限化を確認ください。
mod_hogearmorクラスを作成
package net.minecraft.src; import net.minecraft.src.forge.*; public class mod_hogearmor { public static Item helmetHogeArmor; public static Item plateHogeArmor; public static Item legsHogeArmor; public static Item bootsHogeArmor; static EnumArmorMaterial enumArmorHoge; public mod_hogearmor() { } public void load() { /* * SpriteID無限化してるだけです。 */ MinecraftForgeClient.preloadTexture("/gui/items.png") /* * EnumHelper.addArmorMaterial()内部を説明します。 * "Hoge"は材料名です。適当なのでHogeです。 * 29の部分は、完全に防具が破壊されるまでのダメージ値です。 * 配列部分は2:Helmet 7:Chestplate 5:legs 3:bootsと防具の種類を示しています。 * 最後のやつはわかりません。知ってる人教えろください。 */ enumArmorHoge = EnumHelper.addArmorMaterial("Hoge", 29, new int[] {2, 7, 5, 3}, 9); /* * new HogeArmor()内部を説明します。 * 127,128...はItemIDを設定 * enumArmorHogeは上記enumArmorHogeを参照 * 5は材料のIDです。ダイヤモンド製の防具が4なので5以上から始める必要があります。 * 最後の数字は0:Helmet 1:Chestplate 2:legs 3:boots と、防具の種類を示しています。 */ helmetHogeArmor = new HogeArmor(127, enumArmorHoge, 5, 0).setIconCoord(0, 6).setItemName("helmetHogeArmor"); plateHogeArmor = new HogeArmor(128, enumArmorHoge, 5, 1).setIconCoord(0, 7).setItemName("plateHogeArmor"); legsHogeArmor = new HogeArmor(129, enumArmorHoge, 5, 2).setIconCoord(0, 8).setItemName("plateHogeArmor"); bootsHogeArmor = new HogeArmor(130, enumArmorHoge, 5, 3).setIconCoord(0, 9).setItemName("plateHogeArmor"); } public String getVersion() { return "1.0.0"; } }
HogeArmorクラスを作成
package net.minecraft.src; import net.minecraft.src.forge.*; public class HogeArmor extends ItemArmor implements ITextureProvider, IArmorTextureProvider { /* * ItemArmorの初期化 */ public HogeArmor(int i, EnumArmorMaterial enumarmormaterial, int j, int k) { super(i, enumarmormaterial, j, k); } /* * SpriteID無限化してるだけです。 */ public String getTextureFile() { return "/gui/items.png"; } /* * IArmorTextureProviderで防具のテクスチャファイルを適当させているだけです。 * 頭、胴、足は"/armor/hogearmor_1.png"から * 脚は"/armor/hogearmor_2.png"を参照させています。 */ @Override public String getArmorTextureFile(ItemStack itemstack) { if(itemstack.itemID == mod_hogearmor.helmetHogeArmor.shiftedIndex || itemstack.itemID == mod_hogearmor.plateHogeArmor.shiftedIndex || itemstack.itemID == mod_hogearmor.bootsHogeArmor.shiftedIndex) { return "/armor/hogearmor_1.png"; } if(itemstack.itemID == mod_hogearmor.legsHogeArmor.shiftedIndex) { return "/armor/hogearmor_2.png"; } return "/armor/hogearmor_1.png"; } }
コメントの自動更新を有効化