MinecraftのNeoForge向けMod作成:ツール追加編

公開日: 2025年4月17日

ラベル: ゲーム プログラミング

前回に引き続き、MinecraftのNeoForge向けMod作成についてのブログ記事となります。

今回はツール追加編として、「謎のツルハシ」を追加します。そして、前回追加した「謎のインゴット」をもとに作業台で作成できるように設定します。

今回の対象バージョンは前回に引き続きMinecraft:1.21.4、NeoForge:21.1.114-betaです。なお、ブログ記事中に出てくるパスに「mod_id」などが含まれている場合がありますので必要に応じて適宜読み替えてください。

例:src/main/java/com/hashibiro/kamomod → src/main/java/com/test/samplemod

謎のツルハシを追加し、作業台で作成できるようにします。

前回のブログ記事は「MinecraftのNeoForge向けMod作成:インゴット追加編」です。

ソースの編集

「謎のツルハシ」を追加するためソースコードを追加します。

@Mod(KamoMod.MODID)
public class KamoMod
{
    // 参照用MOD ID
    public static final String MODID = "kamomod";

    // 登録用
    public static final DeferredRegister.Blocks BLOCKS = DeferredRegister.createBlocks(MODID);
    public static final DeferredRegister.Items ITEMS = DeferredRegister.createItems(MODID);

    // ブロック追加と、追加ブロックをもとにしたアイテムの追加
    public static final DeferredBlock<Block> MYSTERY_BLOCK = BLOCKS.registerSimpleBlock("mystery_block",
            BlockBehaviour.Properties.of().
                    destroyTime(1).
                    mapColor(MapColor.COLOR_GRAY));
    public static final DeferredItem<BlockItem> MYSTERY_BLOCK_ITEM = ITEMS.registerSimpleBlockItem("mystery_block", MYSTERY_BLOCK);
    public static final DeferredItem<Item> MYSTERY_RAW = ITEMS.registerSimpleItem("mystery_raw");
    public static final DeferredItem<Item> MYSTERY_INGOT = ITEMS.registerSimpleItem("mystery_ingot");

    // 謎のツルハシ追加 ★
    public static final DeferredItem<Item> MYSTERY_PICKAXE = ITEMS.registerItem("mystery_pickaxe",
            props -> new PickaxeItem( ToolMaterial.IRON, 1, -2.8f, props ));

    // クリエイティブモードのタブ登録用
    public static final DeferredRegister<CreativeModeTab> CREATIVE_MODE_TABS = DeferredRegister.create(Registries.CREATIVE_MODE_TAB, MODID);
    // 設定と、タブに追加アイテムを登録
    public static final DeferredHolder<CreativeModeTab, CreativeModeTab> EXAMPLE_TAB = CREATIVE_MODE_TABS.register("kamomod_tab",
            () -> CreativeModeTab.builder()
                    .title(Component.translatable("itemGroup.kamomod"))
                    .withTabsBefore(CreativeModeTabs.COMBAT)
                    .icon(() -> MYSTERY_BLOCK_ITEM.get().getDefaultInstance())
                    .displayItems((parameters, output) -> {
                        output.accept(MYSTERY_BLOCK_ITEM.get());
                        output.accept(MYSTERY_RAW.get());
                        output.accept(MYSTERY_INGOT.get());
                        output.accept(MYSTERY_PICKAXE.get()); // タブに謎のツルハシを追加 ★
                    }).build());

    // コンストラクタ
    public KamoMod(IEventBus modEventBus, ModContainer modContainer) {
        // IEventBusに登録
        BLOCKS.register(modEventBus);
        ITEMS.register(modEventBus);
        CREATIVE_MODE_TABS.register(modEventBus);
    }
}

前回同様、ファイルの追加ではなく、すでにあるファイルを編集する形で、追加する内容も同じです。前回のソースコードと変更がある部分に「★」マークを入れていますので、その部分だけコピー&ペーストすることをおすすめします。まとめてコピー&ペーストする場合には必要に応じてMod IDやクラス名を修正してください。

画像の追加

謎のツルハシ用の画像(テクスチャ)を追加します。前回同様、透過部分が含まれますので、対応した画像編集ソフトで作成してください。

謎のツルハシ用の画像です。

Minecraftのバニラにある「鉄のツルハシ」(iron_pickaxe.png)の画像をコピーし、Windows11のペイントで色だけ変更すると簡単です。

探し方は前回同様IntelliJ IDEAの右上の虫眼鏡マークを押下後、「ファイル」を選択して「すべての場所」となっていることを確認して「iron_pickaxe.png」を入力、です。

用意した画像は「src/main/resources/assets/kamomod/textures/item」配下にソース上の名称と同じファイル名で格納します。今回は「mystery_pickaxe.png」です。

モデルなどの追加

謎のツルハシのモデルなどを追加します。

「src/main/resources/assets/kamomod/models/item」配下に「mystery_pickaxe.json」というファイルを新規作成し、中身を下記の通りとします。

{
  "parent": "minecraft:item/handheld",
  "textures": {
    "layer0": "kamomod:item/mystery_pickaxe"
  }
}

続けて「src/main/resources/assets/kamomod/items」配下に「mystery_pickaxe.json」というファイルを新規作成し、中身を下記の通りとします。

{
  "model": {
    "type": "minecraft:model",
    "model": "kamomod:item/mystery_pickaxe"
  }
}

以上です。各ファイルの詳細は前回同様「Minecraft Wiki:モデル」を参照ください。

言語ファイルの編集

謎のツルハシのアイテム名を登録します。

「src/main/resources/assets/kamomod/lang」配下にある「ja_jp.json」を編集します。

{
  "itemGroup.kamomod": "KamoModタブ",
  "block.kamomod.mystery_block": "謎のブロック",
  "item.kamomod.mystery_raw": "謎の原石",
  "item.kamomod.mystery_ingot": "謎のインゴット",
  "item.kamomod.mystery_pickaxe": "謎のつるはし"
}

6行目が追加行となります。5行目の最後に「,」を追加し6行目を追加しましょう。

レシピの追加

前回は謎の原石を謎のインゴットにするためにかまど用のレシピを追加しましたが、今回は作業台で謎のインゴットを使用し謎のツルハシを作成できるようレシピを追加します。

「src/main/resources/data/kamomod/recipe」配下に「mystery_pickaxe.json」というファイルを新規作成し、中身を下記の通りとします。

{
  "type": "minecraft:crafting_shaped",
  "category": "equipment",
  "key": {
    "#": "#c:rods/wooden",
    "X": "kamomod:mystery_ingot"
  },
  "pattern": [
    "XXX",
    " # ",
    " # "
  ],
  "result": {
    "count": 1,
    "id": "kamomod:mystery_pickaxe"
  }
}

今回はバニラの「鉄のツルハシ」(iron_pickaxe.json)を参考にしています(探し方は「画像の追加」を参照ください)。

ファイルの詳細は「Minecraft Wiki:レシピ」を参照ください。少し見ると、「key」の項目で必要な材料を定義し、「pattern」で作業台に材料を置く場所を指定していることがわかります。

最後にファイルの配置例を載せておきます。似たようなパスやファイル名で作業しますので間違えないように注意してください。

それぞれのファイルの格納先です。

動作確認

動作確認をします。

まずはクリエイティブモードのタブに謎のツルハシが追加されているか確認します。

タブに謎のツルハシが追加されています。

続いて、作業台で謎のツルハシが作れるか確認します。作業台をワールドに設置し、棒と謎のインゴットを持ちましょう。あとは作成するだけです。

作業台で謎のツルハシを作成する。

謎のツルハシが作成できれば成功です。お疲れさまでした!

最後に

今回はMinecraftのNeoForge向けMod作成のインゴット追加編として「謎のツルハシ」を追加しました。また作業台用のレシピを設定することで、謎のインゴットから謎のツルハシを作れるようにしました。

次回は謎のツルハシに独自の機能を追加してみたいと思います。

以上、少しでも参考になれば幸いです。

このブログを検索

自己紹介

kamo
kamoと申します。 プログラミングやDIYなど、何か作ったりすることが好きな者です。 プログラミングはC言語やC#、Javaあたりに理解があります。 よろしくお願いします。
詳細プロフィールを表示