はじめに
クラフトの素材になるような無機能アイテムの追加をしてみます。
参考
Minecraft Modding Tutorial for MC 1.14/1.14.3 - Basic Items
💻開発環境
ここでは環境は以下のようにします。
- Windows 10
- JDK 8u211
- Minecraft 1.14.4
- Minecraft Forge 1.14.4 (28.1.0)
- IntelliJ IDEA 2019.1.4
パッケージの作成
アイテムの宣言はメインクラス外のクラスでしようと思います。
今後、ブロックの宣言をすることもあるので、それらをまとめるパッケージを作成しておくことにします。
また、アイテムを追加する際に必要になるlang
、models/item
、textures/items
フォルダも作成しておきます。
フォルダ名の単数、複数形には気を付けてください。
└─src
└─main
├─java
│ └─jp
│ └─yuyu
│ └─biwako_mod
│ │ BiwakoMod.java
│ │
│ └─*lists
│ *ItemList.java
│
└─resources
│ logo.png
│ pack.mcmeta
│
├─assets
│ └─biwako_mod
│ ├─*lang
│ ├─*models
│ │ └─*item
│ └─*textures
│ └─*items
└─META-INF
mods.toml
アイテムの宣言
作成したlist
フォルダ内にItemList.java
を作成しアイテムの宣言だけ記述します。
琵琶湖インゴット、略して琵ンゴット
を追加しようと思います。(ナニソレ)
package jp.yuyu.biwako_mod.lists;
import net.minecraft.item.Item;
public class ItemList {
public static Item BiwakoIngot;
}
アイテムの登録
まず、RegistryEvents
クラス内にアイテムの登録用メソッドを記述します。
その中でItem
クラスのインスタンスを作成し、登録します。
group(ItemGroup.MISC)
でクリエイティブタブの指定、
setRegistryName(new ResourceLocation(MOD_ID, "biwako_ingot"))
でアイテムID名の指定です。
アイテムID名のアルファベットは全て小文字でないとForgeがエラーを吐きます
@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
public static class RegistryEvents {
@SubscribeEvent
public static void onItemsRegistry(final RegistryEvent.Register<Item> itemRegistryEvent) {
LOGGER.info("HELLO from Register Item");
itemRegistryEvent.getRegistry().registerAll(
ItemList.BiwakoIngot = new Item(new Item.Properties().group(ItemGroup.MISC))
.setRegistryName(new ResourceLocation(MOD_ID, "biwako_ingot"))
);
}
@SubscribeEvent
public static void onBlocksRegistry(final RegistryEvent.Register<Block> blockRegistryEvent) {
LOGGER.info("HELLO from Register Block");
}
}
翻訳ファイル
アイテムID名
に対するアイテム名を言語別に記述しておきます。
日本語用のファイル名はja_jp.json
、英語(US)はen_us.json
とするルールがあります。
ファイルはsrc/main/resources/assets/biwako_mod/lang
フォルダに作成します。
書き方はitem.MOD_ID.アイテムID名": "アイテム名"
という形。
{
"item.biwako_mod.biwako_ingot": "Biwako Ingot"
}
{
"item.biwako_mod.biwako_ingot": "琵ンゴット"
}
モデルファイル
テクスチャをどのように適用するかをモデルファイルで指定します。
jsonファイルはsrc/main/resources/assets/biwako_mod/models/item
フォルダに
setRegistryNameで登録した名前.json
という形で配置します。
私の場合はbiwako_ingot.json
を配置します。
ほとんどの場合、変えるのはlayer0の値だけで、MOD_ID:items/TEXTURE_FILE_NAME
という形で書きます。
TEXTURE_FILE_NAME
はbiwako_ingot.png
という画像を用意したのであれば、
拡張子以外の部分のbiwako_ingot
となります。
{
"parent": "item/generated",
"textures": {
"layer0": "biwako_mod:items/biwako_ingot"
}
}
テクスチャファイル
テクスチャファイルはsrc/main/resources/assets/biwako_mod/textures/items
フォルダに配置します。
私の場合はbiwako_ingot.png
を配置します。
├─assets
│ └─biwako_mod
│ ├─lang
│ │ en_us.json
│ │ ja_jp.json
│ │
│ ├─models
│ │ └─item
│ │ biwako_ingot.json
│ │
│ └─textures
│ └─items
│ biwako_ingot.png
Minecraftを起動
English
日本語
Githubにてプロジェクトを公開しています。