はじめに
動作環境
- minecraftForge 1.7.10
- intelliJ 15.0.3
やりたかったこと
こんなの
some informationの部分の実装
コード部分
アイテムとブロックで実装が異なる。
- 最初は簡単なItemから
ItemにはもともとaddInformationというメソッドが存在するので、それをOverrideしてつかう。以下を情報を追加したいItemのクラスに追加する。
myitem.java
@Override
public void addInformation(ItemStack itemStack, EntityPlayer player, List list, boolean b)
{
list.add("some information");
}
- 次に複雑になるBlockでの
addInformationの方法について
BlockにはaddInformationのメソッドはないので、Blockのクラスだけでは実現することができない。
ではどこにブロックのaddInformationが可能な箇所があるのか??
ItemBlockというものが存在する。
ということで、新しいJavaClassを作成。
名前はなんでもいいですが、ここではCustomItemBlockとする。
作成したクラスを以下のように書き換えてください。
CustomItemBlock.java
@SideOnly(Side.CLIENT)
public class CustomItemBlock extends ItemBlock
{
public CustomItemBlock(Block block)
{
super(block);
}
public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean par4)
{
list.add("some information");
}
}
複数のブロックに対して、情報を表示したい場合はその都度、クラスを作る。
最後にregisterにひと工夫加える。
ExampleBlock.java
GameRegistry.registerBlock(myblock, CustomItemBlock.class, "myblock");
これで情報を付与したブブロックの登録ができる!

