Forge MDK 1.12.2 の環境での説明になります。
続いてオリジナルの素材を追加してみます。
まずはJavaのソースを用意します。 MyItemというクラスを新規に追加します。 ソースは以下の様に書いてください。
package testmod; import net.minecraft.item.Item; public class MyItem extends Item{ public MyItem(String name) { setUnlocalizedName(name); setRegistryName(name); } }
続いてModItemsというクラスを追加します。 ここで "my_ingot" という素材を登録します。
package testmod; import net.minecraft.client.renderer.block.model.ModelResourceLocation; import net.minecraft.item.Item; import net.minecraft.creativetab.CreativeTabs; import net.minecraftforge.client.event.ModelRegistryEvent; import net.minecraftforge.client.model.ModelLoader; import net.minecraftforge.event.RegistryEvent; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; @Mod.EventBusSubscriber(modid=TestMod.MODID) public class ModItems { static Item myIngot; public static void init() { // オリジナルインゴットを追加. myIngot = new MyItem("my_ingot").setCreativeTab(CreativeTabs.MATERIALS).setMaxStackSize(32); } @SubscribeEvent public static void registerItems(RegistryEvent.Register<Item> event) { event.getRegistry().registerAll(myIngot); } @SubscribeEvent public static void registerRenders(ModelRegistryEvent event) { registerRender(myIngot); } private static void registerRender(Item item) { ModelLoader.setCustomModelResourceLocation(item, 0, new ModelResourceLocation( item.getRegistryName(), "inventory")); } }
resource以下に設定ファイルとテクスチャを用意します。
models/item以下に "my_ingot.json" を用意します。
{ "parent": "item/generated", "textures": { "layer0": "testmod:items/my_ingot" }, "display": { "thirdperson": { "rotation": [-90,0,0], "translation": [0,1,-3], "scale": [0.55,0.55,0.55] }, "firstperson": { "rotation": [0,-135,25], "translation": [0,4,2], "scale": [1.7,1.7,1.7] } } }
textures/items以下にpngを置きます。
はい、早速実行してみましょう。
起動したら[E]キーを押して持ち物画面を開きます。 その他のタブを選択して一番下までスクロールしてみます。 追加した素材が表示されています。
これで無事に素材を追加することができました。