提供: Minecraft Modding Wiki
2015年7月25日 (土) 05:17時点におけるModderKina (トーク | 投稿記録)による版 (ソースコード)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
移動先: 案内検索

この記事は"Minecraft Forge Universal 10.12.0.xxx~"を前提MODとしています。

Wood pickaxe.png
初心者向けのチュートリアルです。
C item.png
Itemに関係のあるチュートリアルです。


防具の追加[編集]

簡単な防具の追加方法

ソースコード[編集]

  • 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");
	}
}
  • SampleItemColor.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;//ここで複数のテクスチャを重ねられるようにする。
    }

    @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のアイテム追加と同じ要領で追加できる。 その他の解説はコメントを参照のこと。