提供: Minecraft Modding Wiki
2014年4月5日 (土) 00:41時点におけるA.K. (トーク | 投稿記録)による版 (テクスチャの指定方法の簡単な解説)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
移動先: 案内検索

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

1.6でテクスチャの管理方法が変更されたことによる指定方法の変更点を解説する。

テクスチャの保存フォルダ

テクスチャの保存フォルダ階層は以下の様なルールに基づいている必要が有る。

(Item)/assets/<domain>/textures/items/hoge.png (Block)/assets/<domain>/textures/blocks/hoge.png (その他、GUI等)/assets/<Domain>/subfolder(階層自由)/hoge.png コーディング時に指定する書式は、ItemとBlockは
"domain:hoge"
その他、GUIやEntityのテクスチャの指定は
"domain:subfolder/hoge.png"
か、あるいは、2変数指定の場合は,
"domain", "subfolder/hoge.png"
となる。

ItemとBlockのアイコンテクスチャ指定方法

ItemとBlockのアイコンテクスチャの指定はsetTextureNameメソッドを用いて以下のように記述する。

public static Item hoge = new Item(ID).setTextureName("domain:textureName");
public static Block foo = new Block(ID).setTextureName("domain:textureName");

GUIのテクスチャ指定方法

GUI(やその他の場合)のテクスチャの指定にはResourceLocationクラスを用いる。まず、GUIのクラスに以下のクラスメンバ変数を追加。

private static final ResourceLocation GUITEXTURE = new ResourceLocation("domain", "gui.png");

そして、drawGuiContainerBackgroundLayerメソッドか、drawScreenメソッド内の最初に、以下のコードを挿入。

mc.getTextureManager().bindTexture(GUITEXTURE);

Entityのテクスチャの指定方法

EntityのRenderクラス内に、GUIと同様にResourceLocation変数を用意する。

private static final ResourceLocation TEXTURE = new ResourceLocation("domain", "gui.png");

そして、getEntityTextureメソッドをオーバーライドし、以下のように変更する。

@Override
protected ResourceLocation getEntityTexture(Entity entity) {
	return TEXTURE;
}

そして、doRenderメソッド内の最初の方で、以下のコードを挿入する。

this.bindEntityTexture(Entityのインスタンス);

TileEntitySpecialRendererでのテクスチャの指定方法

TileEntitySpecialRendererクラス内に、GUIと同様にResourceLocation変数を用意する。

private static final ResourceLocation TEXTURE = new ResourceLocation("domain", "gui.png");

そして、renderTileEntityAtメソッド内の最初の方で、以下のコードを挿入する。

this.bindTexture(TEXTURE);