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 |
##目次
- プログラムの記述
- アイテムモデルの記述
- テクスチャの配置
- 翻訳設定
- 確認
##プログラムの記述
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)
でクリエイティブタブ「その他」に表示されるよう指定
この指定を行わなかった場合、クリエイティブタブからは取得できなくなる
##アイテムモデルの作成
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "examplemod:item/example_item"
}
}
##テクスチャの配置
src/main/resources/assets/examplemod/textures/item
のファイル構造を構築
そこにアイテムのアイコンになる16×16ピクセルのpng画像ファイルexample_item.png
を配置する
##翻訳設定
####英語翻訳
{
"item.examplemod.example_item": "Example Item"
}
翻訳が設定されていない言語の代わりとしても表示される
####日本語翻訳
{
"item.examplemod.example_item": "お試しアイテム"
}
文字コードはUTF-8で保存