アイテムの追加 (1.16.5)

概要

特殊な機能を持たないアイテムを追加します。

GitHubでこの記事の時点の状態を確認できます。

動作確認

2020年3月21日

  • Minecraft 1.16.5
  • Forge 36.1.0

解説

TitaniumMod

TitaniumMod/src/main/java/com/tntmodders/titaniummod/TitaniumMod.java

package com.tntmodders.titaniummod;

import net.minecraft.item.Item;
import net.minecraft.item.ItemGroup;
import net.minecraftforge.eventbus.api.IEventBus;
import net.minecraftforge.fml.RegistryObject;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;

@Mod(TitaniumMod.MOD_ID)
public class TitaniumMod {
    public static final String MOD_ID = "titaniummod";

    public TitaniumMod() {
        IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus();
        Items.register(modEventBus);
    }

    public static class Items {
        private static final DeferredRegister<Item> ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, MOD_ID);
        public static final RegistryObject<Item> TITANIUM_INGOT = ITEMS.register("titanium_ingot", () -> new Item(new Item.Properties()
                .tab(ItemGroup.TAB_MATERIALS)));

        public static void register(IEventBus eventBus) {
            ITEMS.register(eventBus);
        }
    }
}

MODのプログラムをJavaで記述します。

MOD_IDmods.tomlに記載したものと一致する必要があります。すべて小文字にしてください。

ITEMS.register("titanium_ingot", …)でアイテムの登録名を指定します。アイテムIDはtitaniummod:titanium_ingotとなります。

ItemクラスのインスタンスはMinecraftのアイテムの種類を表します。耐久上限や最大スタック数など、アイテムの種類によって変わる性質を保持しています。

tab(ItemGroup.TAB_MATERIALS)でクリエイティブタブ「その他」に表示されるよう指定します。この指定を行わなかった場合、クリエイティブタブからは取得できなくなります。

モデル

TitaniumMod/src/main/resources/assets/titaniummod/models/item/titanium_ingot.json

{
  "parent": "minecraft:item/generated",
  "textures": {
    "layer0": "titaniummod:item/titanium_ingot"
  }
}

アイテムモデルをリソースパックと同様の形式のJSONで記述します。

テクスチャ

TitaniumMod/src/main/resources/assets/titaniummod/textures/item/titanium_ingot.png

titanium_ingot.png

アイテムのアイコンになる16×16ピクセルのpng画像ファイルです。

英語翻訳

TitaniumMod/src/main/resources/assets/titaniummod/lang/en_us.json

{
  "item.titaniummod.titanium_ingot": "Titanium Ingot"
}

英語の翻訳をリソースパックと同様の形式のJSONで記述します。翻訳が設定されていない言語の代わりとしても表示されます。

日本語翻訳

TitaniumMod/src/main/resources/assets/titaniummod/lang/ja_jp.json

{
  "item.titaniummod.titanium_ingot": "チタンインゴット"
}

日本語の翻訳をリソースパックと同様の形式のJSONで記述します。文字コードはUTF-8で保存します。

過去の質問

テクスチャが反映されません。

src/main/resources/assets/にあるtitaniummodフォルダは、MODのIDをすべて小文字にして入れてください。また、テクスチャやモデルが見つからなかったという内容のログが表示されるので、ファイル名が正しいか確認してください。

関連クラス

  • net.minecraft.item.Items:バニラのアイテムが記述されています。
  • net.minecraft.item.ItemGroup:バニラのクリエイティブタブが記述されています。

リンク


前:環境構築

次:ブロックの追加

アイテムの追加 (1.16.5)” への4件のフィードバック

  1. マイクラでMODの勉強をしている者です。
    この記事のコードを全コピーして実際にrunCilentしてみたところ、
    アイテム名やブロック名(日本語と英語両方)、テクスチャが反映されませんでした。
    ファイル名は確認しましたが異常はあり原因は何田消化?原因は何でしょうか?

    1. 実行ログの起動処理の部分にリソースが見つからなかったというエラーが出ているはずなので、「titanium」で検索し、そこに表示されているファイル名とパスを確認してください。
      環境構築の記事の手順にあるmods.tomlmodIdや、JSONファイルなどを配置するフォルダの階層、ファイル名についてもう一度確認してください。
      解決しなければ、TitaniumMod/build/resources/main/assets/にJSONファイルなどが自動でコピーされているかどうかお知らせください。

    1. 正しい状態です。assetsaluminiummodなど指定された名前のフォルダを新しく作り、aluminium.jsonなどのファイルを新しく作って配置してください。

コメントはこちらです。(スパム対策の為コメントは手動承認になっています。未承認のコメントは表示されないので連投はお控え下さい。)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください