提供: Minecraft Modding Wiki
2012年3月21日 (水) 00:03時点におけるNagisawa (トーク | 投稿記録)による版 (新規防具のチュートリアルみたいなものを作成しました。)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
移動先: 案内検索

このページは
・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";
	}
}


自分のコメントを追加
Minecraft Modding Wikiはすべてのコメントを歓迎します。匿名で投稿したくない場合は、アカウント作成またはログインしてください。無料です。