はじめに
今回は、マイクラのMod開発としてオリジナルアイテムの追加をやってみたいと思います。
前提
以下記事を参考にModの開発環境が構築されていること。
【参照】
【開発環境構築】VSCodeでMinecraft(Java版)のMOD作成環境を構築する – SEもりのLog (selifemorizo.com)
【Java + Mod開発】Minecraftで作成するModの名前を変更してみる – SEもりのLog (selifemorizo.com)
フォルダ構成を作成する
赤字が今回の追加対象になります。
│ .gitattributes
│ .gitignore
│ build.gradle
│ changelog.txt
│ CREDITS.txt
│ gradle.properties
│ gradlew
│ gradlew.bat
│ LICENSE.txt
│ README.txt
│ runClient.launch
│ runData.launch
│ runGameTestServer.launch
│ runServer.launch
│ settings.gradle
├─.vscode
│ settings.json
└─src
├─main
│ ├─java
│ │ └─com
│ │ └─mori
│ │ └─morimod
│ │ │ Config.java
│ │ │ MoriMod.java
│ │ │
│ │ └─items ←アイテム管理用フォルダ
│ │ MoriModItem.java ←アイテムMod
│ │
│ └─resources
│ │ pack.mcmeta
│ │
│ ├─assets
│ │ └─morimod ←必ずModIdの名前をつける
│ │ ├─lang ←ゲーム内翻訳用
│ │ │ en_us.json
│ │ │ ja_jp.json
│ │ │
│ │ ├─models ←アイテム設定ファイル
│ │ │ └─item
│ │ │ moriitem.json ←必ずModアイテムの名前をつける
│ │ │
│ │ └─textures ←アイテムのテクスチャ
│ │ └─item
│ │ moriitem.png ←必ずModアイテムの名前をつける
│ │
│ └─META-INF
│ mods.toml
ソース編集
MoriModItem.java
アイテムMod用のjavaファイルを作成します。
package com.mori.morimod.items;
import com.mori.morimod.MoriMod;
import net.minecraft.world.item.Item;
import net.minecraftforge.eventbus.api.IEventBus;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.RegistryObject;
/**
* アイテムMod用クラス
*/
public class MoriModItem {
// MODIDは自身で設定したものを指定します
public static final DeferredRegister<Item> ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, MoriMod.MODID);
// アイテムオブジェクトの生成 第一引数のnemeはitemのIDを任意でつけます
public static final RegistryObject<Item> MORIITEM = ITEMS.register("moriitem", () -> new Item(new Item.Properties()));
public static void register(IEventBus eventBus) {
ITEMS.register(eventBus);
}
}
MoriMod.java
元のModクラスで、アイテム用Modクラスを読み込みます。
@Mod(MoriMod.MODID)
public class MoriMod
{
~~~~~~~~~~~~~~~
public MoriMod()
{
IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus();
MoriModItem.register(modEventBus);
~~~~~~~~~~~~~~~
}
~~~~~~~~~~~~~~~
// Add the example block item to the building blocks tab
private void addCreative(BuildCreativeModeTabContentsEvent event)
{
// クリエイティブモードのタブにアイテムをセット
// INGREDIENTSは材料のグループになる
if (event.getTabKey() == CreativeModeTabs.INGREDIENTS) {
event.accept(MoriModItem.MORIITEM.get());
}
}
~~~~~~~~~~~~~~~
}
設定の追加
moriitem.json
どのテクスチャをどういう形式で出力させるかを設定するファイルです。
ファイル名は自身でつけたアイテムのIDを設定します。
{
"parent": "item/generated",
"textures":{
"layer0": "morimod:item/moriitem"
}
}
テクスチャ格納
画像サイズは、できる限り小さくしたほうが良いです。
この例はは大きくして張っています。
ja_jp.json
ゲーム内で表示するアイテム名を指定します。
{
"item.morimod.moriitem": "もり アイテム"
}
実行確認
実行して独自のアイテムが反省されていることを確認しましょう!
クリエイティブモードに変更する
/gamemode creative
材料の確認
材料のグループに独自のアイテムが追加されていることを確認。
持ってみる
機能としては追加できてないですが、アイテムの追加することができました!
今回はここまで確認できたら終わりです。
公式サイト
最後に
以上、ログになります。
これからも継続していきましょう!!
コメント