Minecraft 1.14.4 Forge Modの作成 その5 【クリエイティブタブの追加】

# はじめに
Miscタブに追加していたところを、オリジナルのクリエイティブタブに追加できるようにしていきます。
![2019-10-30_00.04.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336583/2d6f0f52-a40c-9e44-bb34-c941b27ca0a8.png)

参考
[Creative Tab/Item Group - Minecraft Modding Tutorial for MC 1.14/1.14.3](https://www.youtube.com/watch?v=spCb2Vzhpd4)

# 💻開発環境
ここでは環境は以下のようにします。

- Windows 10
- JDK 8u211
- Minecraft 1.14.4
- Minecraft Forge 1.14.4 (28.1.0)
- IntelliJ IDEA 2019.2.3

# BiwakoItemGroupの作成
`ItemGroup`クラスを継承した`BiwakoItemGroup`クラスを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336583/4fb49eef-2a92-ce01-b4cc-b2f3c30522a1.png)

## ItemGroupクラスの継承
親クラス`ItemGroup`のコンストラクタに引数を与え、
クリエイティブタブID名を指定します。
**これは実際に表示される名前ではなく、ID名(プログラム内で利用される名前)であることに注意です。**
後でこのID名と翻訳ファイルを結びつけることで表示名を設定します。

```java:BiwakoItemGroup.java
package jp.yuyu.biwako_mod;

import net.minecraft.item.ItemGroup;

public class BiwakoItemGroup extends ItemGroup {
    public BiwakoItemGroup(){
        super("biwako_mod");
    }
}
```

## タブアイコン
`createIcon`をオーバーライドします。
返り値の`ItemStack`メソッドの引数にItemを与えることで、
そのItemのアイコンが設定されます。
今回は`琵ンゴット`を指定することにします。

```java:BiwakoItemGroup.java
package jp.yuyu.biwako_mod;

import jp.yuyu.biwako_mod.lists.ItemList;
import net.minecraft.item.ItemGroup;
import net.minecraft.item.ItemStack;

public class BiwakoItemGroup extends ItemGroup {
    public BiwakoItemGroup(){
        super("biwako_mod");
    }

    @Override
    public ItemStack createIcon() {
        return new ItemStack(ItemList.BiwakoIngot);
    }
}
```

## 作成したクリエイティブタブをアイテムに設定する
インスタンスの作成をしてから、`ItemGroup.MISC`を`ItemGroup_Biwako`に変更する。

```java:BiwakoMod.java
@Mod(BiwakoMod.MOD_ID)
public class BiwakoMod {
    public static final String MOD_ID = "biwako_mod";

    private static final Logger LOGGER = LogManager.getLogger(MOD_ID);
    // インスタンスの作成
    public static final ItemGroup ItemGroup_Biwako = new BiwakoItemGroup();
...
...
        public static void onItemsRegistry(final RegistryEvent.Register<Item> itemRegistryEvent) {
            LOGGER.info("HELLO from Register Item");
            itemRegistryEvent.getRegistry().registerAll(
                    // ItemGroupの変更
                    ItemList.BiwakoIngot = new Item(new Item.Properties().group(ItemGroup_Biwako))
                            .setRegistryName(new ResourceLocation(MOD_ID, "biwako_ingot")),
                    // 変更
                    ItemList.BiwakoBlock = new BlockItem(BlockList.BiwakoBlock, new Item.Properties().group(ItemGroup_Biwako))
                            .setRegistryName(BlockList.BiwakoBlock.getRegistryName())
            );
        }
...
```

# 翻訳ファイル

```json:en_us.json
{
    "itemGroup.BiwakoItemGroup": "Biwako MOD"
}
```

```json:ja_jp.json
{
    "itemGroup.BiwakoItemGroup" : "琵琶湖 MOD"
}
```

# Minecraftの起動
日本語
![2019-10-30_00.04.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336583/2d6f0f52-a40c-9e44-bb34-c941b27ca0a8.png)
English
![2019-10-30_00.04.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336583/0ab3b1df-719f-1dc6-e3cb-7f7ad6cc11bc.png)

---
[Github](https://github.com/Hiroya-W/biwakoMC/tree/1.14.4)にてプロジェクトを公開しています。