今回は、クリエイティブモードのインベントリーに MOD 独自のタブを追加するよ!

SPONSERD LINK

前回は、MOD を JAR ファイルに出力した。

タブを追加する

package com.watermelonheadman.gopichandmod;

import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraftforge.common.MinecraftForge;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;

import com.watermelonheadman.gopichandmod.audio.InstrumentManager;
import com.watermelonheadman.gopichandmod.items.GopichandItems;
import com.watermelonheadman.gopichandmod.network.PacketHandler;

@Mod( modid = GopichandMod.MODID, version = GopichandMod.VERSION )
public class GopichandMod
{
	@Mod.Instance( "GopichandMod" )
	public static final String MODID = "gopichandmod";
	public static final String VERSION = "1.0.0";

	@EventHandler
	public void preInit( FMLPreInitializationEvent e )
	{
		GopichandItems.registry( this );
		InstrumentManager.registry();
		PacketHandler.init();
	}

	@EventHandler
	public void Init( FMLInitializationEvent e )
	{
		Recipes.registry();
	}

	public static CreativeTabs GopichandModTab
		= new CreativeTabs( "gopichandmodtab" )
	{
		public Item getTabIconItem()
		{
			return GopichandItems.Gopichand;
		}
	};
}

ハイライトされている部分が今回追加したコードです。

クラス CreativeTabs のコントラクタの引数の文字列 gopichandmodtab は、追加するタブのシステム名だよ。

関数 getTabIconItem の戻り値 GopichandItems.Gopichand は、タブに表示するテクスチャを持つアイテムだよ。

package com.watermelonheadman.gopichandmod.items;

import net.minecraft.item.Item;
import cpw.mods.fml.common.registry.GameRegistry;

import com.watermelonheadman.gopichandmod.GopichandMod;

public class ItemGopichandBody extends Item
{
	public ItemGopichandBody()
	{
		String name = "gopichandbody";

		this.setCreativeTab( GopichandMod.GopichandModTab );
		this.setUnlocalizedName( name );
		this.setTextureName( "gopichandmod:gopichandbody" );
		maxStackSize = 1;

		GameRegistry.registerItem( this, name );

		return;
	}
}

今回作ったタブにアイテムを追加するには、関数 setCreativeTab の引数で GopichandMod.GopichandModTab を渡す。

タブをローカライズする

アイテムの名前と同様にタブの名前をローカライズする。

item.gopichand.name=Gopichand
item.gopichandhead.name=Gopichand Head
item.gopichandbody.name=Gopichand Body
item.ironstring.name=Iron String
itemGroup.gopichandmodtab=GopichandMod
item.gopichand.name=ゴピチャンド
item.gopichandhead.name=ゴピチャンドの頭
item.gopichandbody.name=ゴピチャンドの胴
item.ironstring.name=鉄の弦

ハイライトされている部分が lang ファイルに追加するコードです。

今回は、日本語のローカライズは必要ないので en_US.lang のみ編集する。

この場合、ロケール設定が日本語の Minecraft では、en_US.lang に記述された名前が表示される。

Minecraft のロケール設定と lang ファイルの関係は下記のようになる。

ロケールと lang ファイル
ロケール en_US.lang ja_JP.lang 表示される文字列
en_US GopichandMod ゴピチャンドモッド GopichandMod
en_US GopichandMod - GopichandMod
en_US - ゴピチャンドモッド システム名
ja_JP GopichandMod ゴピチャンドモッド ゴピチャンドモッド
ja_JP GopichandMod - GopichandMod
ja_JP - ゴピチャンドモッド ゴピチャンドモッド

ローカライズされていないロケール設定の Minecraft でも en_US.lang に記述していれば、その設定が表示される。

テスト

Minecraft を起動して、クリエイティブモードではじめてみる。

インベントリーを開くと左上と右上にページ送りのボタンが表示されているので、クリックして、次のページを開く。
タブが追加されていれば成功だよ!

お疲れ様でした!

次回予告

次回は、ログを出力できるようにするよ!