こんばんは。Nakanishiです。
Discordサーバーを運営中です。
一緒にゆるくMod制作を楽しみませんか?
※)日本語での会話ができる方のみ参加可能です。
条件に合わない方は参加をご遠慮ください。
前回のおさらい
基礎的な食料アイテムを追加し、実際に動作確認まで行いました。
JavaでMinecraftのModを作ろう☆ 食料編② 〜登録して動作確認をしてみよう〜 - NakanishiのForge1.20.1のJavaMod開発講座
今回はフードプロパティの設定を追加して、エフェクト付きの食料を作ってみようと思います。
①テクスチャ、JSONファイルを追加しよう

まず、いつもの通りテクスチャを用意して【textures/item】に入れます。
そうしたら【models/item】にJSONファイルを制作します。
例)
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "nakanishi_mod:item/emerald_carrot"
}
}

ここまで出来たら、次はフードプロパティを追加していきます。
②フードプロパティを追加しよう

JavaでMinecraftのModを作ろう☆ 食料編① 〜フードプロパティを追加しよう〜 - NakanishiのForge1.20.1のJavaMod開発講座
上記の記事で書いたフードプロパティのCLASSファイルに、【EMERALD CARROT】の値を追加していきます。
例)
public static final FoodProperties EMERALD_CARROT = new FoodProperties.Builder()

値を設定してないので赤線が引かれています。
まずはここに、前回と同じ値を入力していきます。
例)
.nutrition(3)
.saturationMod(0.6F)
.build();

これでニンジンと同じ値のフードプロパティが完成しました。
今回は応用として、【Emerald Carrot】に村の英雄の効果を付与していこうと思います。
.saturationMod()と.build()の間に以下の例文を入力します。
例)
.effect(() ->new MobEffectInstance(MobEffects.HERO_OF_THE_VILLAGE, 600, 0),1.0F)

💡ポイント
・MobEffectsとMobEffectを間違えないように気を付けてください
・600はティック数です。1秒で20ティックなので、600で30秒です
・0は効果レベルです。0で効果レベル1、1で効果レベル2になります
・1.0Fは効果が付く確率です。1.0Fで100%、0.5Fで50%になります
ここまでエラーなく書けたら、アイテムのCLASSファイルに移ります。
今回は例として【Item_Emerald_Carrot】としました。

ここで前回と同じように入力していき、フードプロパティで【EMERALD_CARROT】を選択します。
例)
public class Item_Emerald_Carrot extends Item {
public Item_Emerald_Carrot() {
super(new Item.Properties()
.food(NakanishiModFoods.EMERALD_CARROT)
);
}
}

これで先ほどのフードプロパティを引き継いだアイテムのCLASSファイルが完成です。
ここまでお疲れ様でした☆
次回は実際に【Emerald Carrot】をレジストリ登録して、動作確認までしていきたいと思います。
もしこの記事が参考になった、または「JavaでMod制作を始めてみたい!」と思っていただけたら、ぜひ読者登録をお願いします。
それではまた次回お会いしましょう。
ここまでお読みいただき、ありがとうございました。
【次回記事】
JavaでMinecraftのModを作ろう☆ 食料編④ 〜エフェクト付きの食料の動作確認をしてみよう〜 - NakanishiのForge1.20.1のJavaMod開発講座