この記事では、追加したアイテムにテクスチャを設定するよ。
Minecraft 1.7.10 版の記事になります。

テクスチャ用の画像(PNG ファイル)

テクスチャ用の画像を作る。
16 x 16 の PNG ファイルを用意する。アイテムの形に合わせて透過の設定する。

筆者は下記の画像を用意した。

gopichand.png

gopichand.png

gopichandhead.png

gopichandhead.png

gopichandbody.png

gopichandbody.png

ironstring.png

ironstring.png

リソース用のソース・フォルダーとパッケージ

テクスチャ用の画像ファイルやローカライズに使うテキストファイルを保存するソース・フォルダーを作成する。
クラスを保存しているソース・フォルダー java と同じレベルの階層に resource という名前でソース・フォルダーを新規作成する。

テクスチャ用の画像データを登録するパッケージを作成する。

assets.『任意のパッケージの名前』.textures.items

下記のように作成した。

assets.gopichandmod.textures.items

画像ファイルをプロジェクトに登録する

先ほど、作成したパッケージに画像ファイルを登録する。

"パッケージ・エクスプローラー"のパッケージ assets.gopichandmod.textures.items にファイルをドラックアンドドロップする。

“ファイル操作”のダイアログが表示され、“ファイルをコピー”か“ファイルへリンク”か尋ねられる。

どちらも一短一長だけど、“ファイルへリンク”を選択した場合。元のファイルを移動するとパスを再設定しなければならなくなるので、“ファイルをコピー”の方が管理しやすいと思う。

画像ファイルを追加したプロジェクト構成は下記のとおりになった。

src/main/java
	com.gopichandmod
		GopichandMod.java
		Recipes.java
	com.watermelonheadman.gopichandmod.items
		GopichandItems.java
		ItemGopichand.java
		ItemGopichandBody.java
		ItemGopichandHead.java
		ItemIronString.java
src/main/resource
	assets.gopichandmod.textures.items
		gopichand.png
		gopichandbody.png
		gopichandhead.png
		ironstring.png

アイテムにテクスチャを指定する

前回の記事で作ったアイテムのクラスそれぞれにテクスチャに使う画像を指定する処理を追加する。

package com.gopichandmod.items;

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

public class ItemGopichand extends Item
{
	public ItemGopichand()
	{
		String name = "gopichand";

		this.setCreativeTab( CreativeTabs.tabMisc );
		this.setUnlocalizedName( name );
		maxStackSize = 1;
		this.setTextureName( "gopichandmod:gopichand" );

		GameRegistry.registerItem( this, name );

		return;
	}
}

コンストラクターの中で関数 this.setTextureName を実行して、テクスチャを設定する。

		this.setTextureName( "gopichandmod:gopichand" );

引数に指定する画像を下記の書式で入力する。

"[パッケージの名前]:[画像ファイルの名前(拡張子を除く)]"

このアイテムの場合は、assets.gopichandmod.textures.items に含まれる gopichandmod.png をテクスチャに指定するので

"gopichandmod:gopichand"

となる。

もし、テクスチャ用のパッケージを assets.example.gopichandmod.textures.items のように入れ子にしている場合は

example.gopichandmod:gopichandmod

と入力する。

package com.watermelonheadman.gopichandmod.items;

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

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

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

		GameRegistry.registerItem( this, name );

		return;
	}
}

package com.gopichandmod.items;

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

public class ItemGopichandHead extends Item
{
	public ItemGopichandHead()
	{
		String name = "gopichandhead";

		this.setCreativeTab( CreativeTabs.tabMisc );
		this.setUnlocalizedName( name );
		maxStackSize = 1;
		this.setTextureName( "gopichandmod:gopichandhead" );

		GameRegistry.registerItem( this, name );

		return;
	}
}

package com.gopichandmod.items;

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

public class ItemIronString extends Item
{
	public ItemIronString()
	{
		String name = "ironstring";

		this.setCreativeTab( CreativeTabs.tabMisc );
		this.setUnlocalizedName( name );
		maxStackSize = 64;
		this.setTextureName( "gopichandmod:ironstring" );

		GameRegistry.registerItem( this, name );

		return;
	}
}

テストする

テクスチャの設定が反映されているか確かめる為、クリエイティブモードでテストする。

アイテムのアイコンがそれぞれ指定したテクスチャに変わっていれば、成功です。

まだ、変なアイコンのままであれば、ソース・フォルダーやパッケージ、画像ファイルの名前を間違えていないかチェックする。

お疲れ様でした!