(この記事は一連の解説記事の一つになります)
先頭記事:入門編
前の記事:2. ブロックの追加
次の記事:4. ツールの追加
クリエイティブタブの追加
ここまでアイテムとブロックを追加してきましたが、クリエイティブにおいてバニラ1 のアイテムとおなじタブに表示されるのは少し変な気がします。 それに、追加アイテムは独自のタブにまとまっていた方が何かと便利です。ここでは自分のMod用のクリエイティブタブを追加します。
\src\main\java\jp\koteko\example_mod\
├ ExampleItemGroup.java
├ ExampleMod.java
└ lists
ExampleItemGroup.java
package jp.koteko.example_mod;
import jp.koteko.example_mod.lists.ItemList;
import net.minecraft.item.ItemGroup;
import net.minecraft.item.ItemStack;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
public class ExampleItemGroup extends ItemGroup {
public static final ExampleItemGroup DEFAULT = new ExampleItemGroup();
public ExampleItemGroup() {
super("example_mod");
}
@Override
@OnlyIn(Dist.CLIENT)
public ItemStack createIcon() {
return new ItemStack(ItemList.ExampleIngot);
}
}
ItemGroup
を継承した独自のクラスを定義します。createIcon
でタブのアイコンを設定します(このメソッドは必須です)。なお、ここで指定した"example_mod"
はModIDではなく、このItemGroupの内部IDです。
このタブを使うように、既存の追加アイテムの設定を変更します。
ItemList.java
// ...
import jp.koteko.example_mod.ExampleItemGroup; // 追加
//import net.minecraft.item.ItemGroup; // 削除
// ...
@Mod.EventBusSubscriber(modid = ExampleMod.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD)
public class ItemList {
// groupの引数を変更
public static Item ExampleIngot = new Item(new Item.Properties().group(ExampleItemGroup.DEFAULT))
.setRegistryName(new ResourceLocation(ExampleMod.MOD_ID, "example_ingot"));
// ...
}
BlockList.java
// ...
import jp.koteko.example_mod.ExampleItemGroup; // 追加
//import net.minecraft.item.ItemGroup; // 削除
// ...
@Mod.EventBusSubscriber(modid = ExampleMod.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD)
public class BlockList {
// ...
// groupの引数を変更
@SubscribeEvent
public static void registerBlockItems(RegistryEvent.Register<Item> event) {
event.getRegistry().registerAll(
new BlockItem(ExampleBlock, new Item.Properties().group(ExampleItemGroup.DEFAULT))
.setRegistryName(new ResourceLocation(ExampleMod.MOD_ID, "example_block"))
);
}
}
続いて、このままだと表示名が設定されていないので、langファイルに追加します。
en_us.json
{
"itemGroup.example_mod": "Example Mod",
"item.example_mod.example_ingot": "Example Ingot",
"block.example_mod.example_block": "Example Block"
}
ja_jp.json
{
"itemGroup.example_mod": "例Mod",
"item.example_mod.example_ingot": "例インゴット",
"block.example_mod.example_block": "例ブロック"
}
ゲームを起動します。
自分のModだけの新しいタブが追加できました。
参考
Minecraft 1.14.4 Forge Modの作成 その5 【クリエイティブタブの追加】
次の記事
-
Modが入っていない素のマイクラのこと ↩