MinecraftでMODの開発をします
試行錯誤を書いていくだけのものになります
概要
特殊な機能を持たないアイテムの追加
動作環境 2021/05/12
Version | |
---|---|
Mac OS Big Sur | 11.1 |
IntelliJ IDEA | 2021.1.1 |
AdoptOpenJDK (HotSpot) | 1.8.0_282 |
Minecraft | 1.16.5 |
Forge | 36.1.0 |
目次
- プログラムの記述
- アイテムモデルの記述
- テクスチャの配置
- 翻訳設定
- 確認
プログラムの記述
src/main/java/com/ドメイン名/examplemod/ExampleMod.java
package com.ドメイン名.examplemod;
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(ExampleMod.MOD_ID)
public class ExampleMod {
public static final String MOD_ID = "examplemod";
public ExampleMod() {
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("example_item", () -> new Item(new Item.Properties()
.tab(ItemGroup.TAB_MATERIALS)));
public static void register(IEventBus eventBus) {
ITEMS.register(eventBus);
}
}
}
MOD_IDはmods.tomlに記載したものと一致する必要があり、すべて小文字の必要がある
ITEMS.register("example_item", …)
でアイテムの登録名を指定
アイテムIDはexamplemod:example_item
となる
ItemクラスのインスタンスはMinecraftのアイテムの種類を表す。耐久上限や最大スタック数など、アイテムの種類によって変わる性質を保持している
tab(ItemGroup.TAB_MATERIALS)
でクリエイティブタブ「その他」に表示されるよう指定
この指定を行わなかった場合、クリエイティブタブからは取得できなくなる
アイテムモデルの作成
src/main/resources/assets/examplemod/models/item/example_item.json
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "examplemod:item/example_item"
}
}
テクスチャの配置
src/main/resources/assets/examplemod/textures/item
のファイル構造を構築
そこにアイテムのアイコンになる16×16ピクセルのpng画像ファイルexample_item.png
を配置する
翻訳設定
英語翻訳
src/main/resources/assets/examplemod/lang/en_us.json
{
"item.examplemod.example_item": "Example Item"
}
翻訳が設定されていない言語の代わりとしても表示される
日本語翻訳
src/main/resources/assets/examplemod/lang/ja_jp.json
{
"item.examplemod.example_item": "お試しアイテム"
}
文字コードはUTF-8で保存
確認
参考文献