目次
概要
特殊な機能を持たないアイテムを追加します。
動作確認
2020年4月1日
- Minecraft 1.14.4
- Forge 28.2.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.event.RegistryEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
@Mod(TitaniumMod.MOD_ID)
public class TitaniumMod {
public static final String MOD_ID = "titaniummod";
@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
public static class RegistryEventSubscriber {
@SubscribeEvent
public static void registerItems(final RegistryEvent.Register<Item> event) {
event.getRegistry().registerAll(Items.TITANIUM_INGOT);
}
}
public static class Items {
public static final Item TITANIUM_INGOT = new Item(new Item.Properties()
.group(ItemGroup.MATERIALS))
.setRegistryName("titanium_ingot");
}
}
MODのプログラムをJavaで記述します。
package com.tntmodders.titaniummod
には、実際に自分のMODを作る際は自分が保有するドメインを使います。ない場合は自分の名前など、他のプログラムと被らないものを使ってください1。com.tntmodders
をあなたのMODのパッケージとして使わないでください。
MOD_ID
はmods.toml
に記載したものと一致する必要があります。すべて小文字にしてください。
Item
クラスのインスタンスはMinecraftのアイテムの種類を表します。耐久上限や最大スタック数など、アイテムの種類によって変わる性質を保持しています。バニラのアイテムはnet.minecraft.item.Items
にすべて記述されています。
group(ItemGroup.MATERIALS)
でクリエイティブタブ「その他」に表示されるよう指定します。この指定を行わなかった場合、検索タブにのみ表示されます。
setRegistryName("titanium_ingot")
でアイテムの登録名を指定します。アイテムIDはtitaniummod:titanium_ingot
となります。
モデル
TitaniumMod/src/main/resources/assets/titaniummod/models/item/titanium_ingot.json
{
"parent": "item/generated",
"textures": {
"layer0": "titaniummod:item/titanium_ingot"
}
}
アイテムモデルをリソースパックと同様の形式のJSONで記述します。
テクスチャ
TitaniumMod/src/main/resources/assets/titaniummod/textures/item/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で保存します。
過去の質問
アイテムIDを指定する方法はありますか?
MOD側から数値でアイテムIDやブロックIDを指定することはできません。
テクスチャが反映されません。
src/main/resources/assets
の下にあるtitaniummod
フォルダは、MODのIDをすべて小文字にして入れてください。また、テクスチャが見つからなかったという内容のログが表示されるので、ファイル名が正しいか確認してください。
リンク
- Items - Forge Documentation
- Registries - Forge Documentation
- Resources - Forge Documentation
- リソースパック - Minecraft Wiki
- チュートリアル/リソースパックの作成 - Minecraft Wiki
-
オファレンMODはtntmodders.comを取得する前に開発を始めたので、
nahama.ofalenmod
をパッケージ名にしています。 ↩
剣の場合どのような引数使えばいいのでしょうか
TitaniumMod.java
TitaniumModItemTier.java
models/item/titanium_sword.json
独自の素材による新しい剣をMODで追加したい場合、Itemの代わりにSwordItemのインスタンスを作り、登録する必要があります。
バニラのコードではItems.IRON_SWORDなどが参考になると思います。アイテムの登録方法などが異なりますが、「ツール類の追加 (1.7.10)」の剣を追加する部分もご覧ください。
詳しい解説は初級編で記事を書く予定です。
(2020年4月23日更新:TitaniumModItemTier.TITANIUMのrepairMaterialを鉄インゴットからチタンインゴットに修正)