nomurabbitのブログ

nomurabbitのブログはITを中心にした技術ブログです。

nomurabbitのブログ

【マインクラフト】究極の羽子板作ったった【自作MOD】

この記事は、マインクラフトの自作MODについて解説しています。

こんにちは!らびです。今回は究極の羽子板作ったったと題してマインクラフトの自作MODを解説します。

このアイテムを使えば、エンドラ討伐も楽勝ですね!

ディレクトリ構成

まずはプロジェクトのディレクトリ構成を紹介します。今回新規追加・修正があるのは赤枠で囲ったファイルです。対象は、ItemInitクラス、lang系のファイル(en_us.json、ja_jp.json)、ultimate_hagoita.json、ultimate_hagoitaディレクトリ以下のファイルです。

f:id:nomurabbit:20220101165714p:plain

アイテム初期化クラス(ItemInitクラス)

今回追加する究極の羽子板はの派生オブジェクトです。剣から派生したオブジェクトはアイテムとして追加しますので、ItemInitクラスを修正していきます。

ItemInitクラス

package com.nomurabbit.mymod.core.init;

import com.nomurabbit.mymod.MyMod;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.SwordItem;
import net.minecraft.world.item.Tiers;
import net.minecraft.world.item.ItemStack;
import net.minecraftforge.fmllegacy.RegistryObject;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraft.world.item.CreativeModeTab;

public final class ItemInit {

    public static final CreativeModeTab TUTORIAL_TAB = new CreativeModeTab(MyMod.MOD_ID) {
        @Override
        public ItemStack makeIcon() {
            return EXAMPLE_ITEM.get().getDefaultInstance();
        }
    };

    public static final DeferredRegister<Item> ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS,
            MyMod.MOD_ID);

    public static final RegistryObject<Item> EXAMPLE_ITEM = ITEMS.register("example_item",
            () -> new Item(new Item.Properties().tab(TUTORIAL_TAB).fireResistant()));

    public static final RegistryObject<Item> EXAMPLE_SWORD = ITEMS.register("example_sword",
            () -> new SwordItem(Tiers.NETHERITE, 5, -2.4F,
                    (new Item.Properties().tab(TUTORIAL_TAB).fireResistant())));

    public static final RegistryObject<Item> ULTIMATE_HAGOITA = ITEMS.register("ultimate_hagoita",
            () -> new SwordItem(Tiers.NETHERITE, 994, -2.4F,
                    (new Item.Properties().tab(TUTORIAL_TAB).fireResistant())));

    private ItemInit() {
    }
}

SwordItemコンストラクタの第二引数(攻撃力)が994って…。チートにもほどがあるジョ。

アイテムの名称(lang系のファイル)

アイテムの名称を定義します。言語ごとにあるlang系のファイルを修正して、英語ではUltimate Hagoita、日本語では究極の羽子板と表示されるようにします。

en_us.json

{
  "item.mymod.example_item": "Example Item",
  "item.mymod.example_sword": "Example Sword",
  "item.mymod.ultimate_hagoita": "Ultimate Hagoita"
}

ja_jp.json

{
  "item.mymod.example_item": "例のアイテム",
  "item.mymod.example_sword": "例の剣",
  "item.mymod.ultimate_hagoita": "究極の羽子板"
}

テクスチャの追加

テクスチャの定義はjson画像はpngでそれぞれ作成します。これらのファイルの作成にあたっては手作業だとかなりの手間なので、blockbenchなどのツールを使用するといいと思います。

GitHubに今回のテクスチャ系のファイルを置きましたジョ。よかったら参考にしてくださいだジョ。

github.com

実行

必要なファイルの追加や修正が済んだら実行です。

今作ったModを実際に動かしてみましょう!

f:id:nomurabbit:20220101171213p:plain

f:id:nomurabbit:20220101171254p:plain

このように究極の羽子板が追加されていることが確認できました。

まとめ

というわけで今回は究極の羽子板を追加してきましたがいかがでしたでしょうか?

このチート武器なら、どんな強敵も無双できますね!

次回もぜひご覧ください。では!