こんばんは。Nakanishiです。
Discordサーバーを運営中です。
一緒にゆるくMod制作を楽しみませんか?
※)日本語での会話ができる方のみ参加可能です。
条件に合わない方は参加をご遠慮ください。
前回のおさらい
CropBlock(ブロック)のテクスチャ、JSONファイルを完成させました。
JavaでMinecraftのModを作ろう☆ 農業編① 〜JSONファイルを用意しよう〜 - NakanishiのForge1.20.1のJavaMod開発講座
今回はCropBlock側のCLASSファイルを作っていこうと思います。
①CLASSファイルを作ろう
今回は例として【Prismarine Carrots】のCLASSファイルを作っていこうと思います。

作物は基本【CropBlock】で作りますが、今回は出来るだけ簡略出来る形を取ろうと思うので、【CarrotBlock】を使っていこうと思います。
例)
public class Block_Prismarine_Carrots extends CarrotBlock

まだ引数を入れてないので赤線が引かれています。ここで赤線を消すために、赤線のところで右クリックをして【Show Context Actions】を選択します。
そうしたら【Creat constructor matching super】を選択してください。

こうすることで仮のパラメータと引数が表示されます。
ここで一旦()内は消してもらって、新しい引数を書いてあげます。
例)
Properties.copy(Blocks.CARROTS)

💡ポイント
・Blocksはnet.minecraft.world.level.blockのものを選択してください
これで公式のニンジンブロックと同じ挙動のブロックのCLASSファイルが完成しました。
ただ、これではJadeやWTHITでブロックを見たときに、公式のニンジンのアイコンが表示されてしまうので、そこを上書きしてあげます。
まず、上書きするために@Overrideを書いてあげます。

位置はこの位置に書いてください。
そうしたら【CTRLキー】を押しながら、CarrotBlockにカーソルを合わせます。
そうするとCarrotBlockが光るはずなので、そのままクリックをしてあげてください。

そうするとCarrotBlockのCLASSファイルに入れます。
ここで
protected ItemLike getBaseSeedId() {
return Items.CARROT;
}
をコピーしてきてください。
ここがブロックのアイコンを表示させるコードになっているので、これを上書きしてあげます。
例)
@Override
protected ItemLike getBaseSeedId() {
return NakanishiModItems.PRISMARINE_CARROT.get();
}

これでJadeやWTHITでブロックを見たときに【Prismarine Carrot】が表示されるようになります。
②レジストリ登録をしよう
ここまで出来たら、次はブロック登録CLASSにレジストリ登録をしていきます。
JavaでMinecraftのModを作ろう☆ ブロック編④ 〜registryクラスを作ってブロックを登録しよう〜 - NakanishiのForge1.20.1のJavaMod開発講座
まだブロック登録CLASSを作ってない方は、上記の記事を参照ください。
作物のブロックはアイテム状態がないので、登録はブロック側だけで大丈夫です。
例)
public static final RegistryObject<Block> PRISMARINE_CARROTS = BLOCKS.register("prismarine_carrots", Block_Prismarine_Carrots::new);

これでCropBlock側の【Prismarine Carrots】がゲーム内に反映されました。
ただ、まだ【Prismarine Carrot】が植えれるアイテムになっていないので、次回は【Prismarine Carrot】を植えれるアイテムに変更していこうと思います。
ここまでお疲れ様でした☆
もしこの記事が参考になった、または「JavaでMod制作を始めてみたい!」と思っていただけたら、ぜひ読者登録をお願いします。
それではまた次回お会いしましょう。
ここまでお読みいただき、ありがとうございました。
【次回記事】
JavaでMinecraftのModを作ろう☆ 農業編③ 〜SeedItem(アイテム)のCLASSファイルを作ろう〜 - NakanishiのForge1.20.1のJavaMod開発講座