こんばんは。Nakanishiです。
Discordサーバーを運営中です。
一緒にゆるくMod制作を楽しみませんか?
※)日本語での会話ができる方のみ参加可能です。
条件に合わない方は参加をご遠慮ください。
前回のおさらい
SeedItem(アイテム)のCLASSファイルを完成させ、透過処理のCLASSファイルも作りました。
JavaでMinecraftのModを作ろう☆ 農業編③ 〜SeedItem(アイテム)のCLASSファイルを作ろう〜 - NakanishiのForge1.20.1のJavaMod開発講座
今回は【翻訳】と【loot_table】の処理を書き、農作物【Prismarine Carrots】を完成させようと思います。
①翻訳を追記しよう
JavaでModを作ろう☆ 共通編① ~翻訳とレシピを作ろう~ - NakanishiのForge1.20.1のJavaMod開発講座
翻訳をまだ作ってない方は上記の記事を参照ください。
翻訳の追記は今までと同じ方法をとります。
例)
"block.nakanishi_mod.prismarine_carrots": "Prismarine Carrot"

②loot_tableを追加しよう
【loot_table】はブロックを壊した際に、何がドロップするかを指定するJSONファイルです。これがないと何もドロップしなくなります。
ブロックの【loot_table】は以下の位置に作ります。
【resource/data/modid/loot_tables/blocks】
自分のmodidはnakanishi_modなので
【resource/data/nakanishi_mod/loot_tables/blocks】
になります。

ここに【loot_table】を作っていきます。
今回は例として、公式の【carrots】のJSONファイルを編集しようと思います。
公式のcarrotsのloot_tableのJSONファイル例)
{
"type": "minecraft:block",
"functions": [
{
"function": "minecraft:explosion_decay"
}
],
"pools": [
{
"bonus_rolls": 0.0,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:carrot"
}
],
"rolls": 1.0
},
{
"bonus_rolls": 0.0,
"conditions": [
{
"block": "minecraft:carrots",
"condition": "minecraft:block_state_property",
"properties": {
"age": "7"
}
}
],
"entries": [
{
"type": "minecraft:item",
"functions": [
{
"enchantment": "minecraft:fortune",
"formula": "minecraft:binomial_with_bonus_count",
"function": "minecraft:apply_bonus",
"parameters": {
"extra": 3,
"probability": 0.5714286
}
}
],
"name": "minecraft:carrot"
}
],
"rolls": 1.0
}
],
"random_sequence": "minecraft:blocks/carrots"
}
💡ポイント
・【carrot】と【carrots】の違いに気を付けてください。
・【carrot】はアイテム、【carrots】はブロックです。
長いJSONファイルに感じるかもしれませんが、変更するのは数か所なので、安心してください。
変更するのは
・"name": "minecraft:carrot"
・"block": "minecraft:carrots"
・"random_sequence": "minecraft:blocks/carrots"
の3点です。
編集例)
{
"type": "minecraft:block",
"functions": [
{
"function": "minecraft:explosion_decay"
}
],
"pools": [
{
"bonus_rolls": 0.0,
"entries": [
{
"type": "minecraft:item",
"name": "nakanishi_mod:prismarine_carrot"
}
],
"rolls": 1.0
},
{
"bonus_rolls": 0.0,
"conditions": [
{
"block": "nakanishi_mod:prismarine_carrots",
"condition": "minecraft:block_state_property",
"properties": {
"age": "7"
}
}
],
"entries": [
{
"type": "minecraft:item",
"functions": [
{
"enchantment": "minecraft:fortune",
"formula": "minecraft:binomial_with_bonus_count",
"function": "minecraft:apply_bonus",
"parameters": {
"extra": 3,
"probability": 0.5714286
}
}
],
"name": "nakanishi_mod:prismarine_carrot"
}
],
"rolls": 1.0
}
],
"random_sequence": "nakanishi_mod:blocks/prismarine_carrots"
}
これで公式のニンジンと同じドロップの挙動になります。
それでは実際に動作確認をしてみましょう。

Jadeを入れたことで成長の段階を無事に確認出来ました。
当たり判定も公式のニンジンと同じになっています。
では、この成熟状態で破壊してみましょう。

今回は4つドロップしました。
では幸運3を付けたクワで回収してみましょう。

今回は6つドロップしました。
幸運の効果も適応されてますね。
これで無事に農作物(ニンジン)が完成しました。
今回は作りやすさを重視して【CarrotBlock】で作ってみましたが、オリジナルの作物を作る時は主に【CropBlock】を使います。
その場合、当たり判定なども1から設定することになるので、既存の作物から練習するのが良いと思います。
ここまでお疲れ様でした☆
もしこの記事が参考になった、または「JavaでMod制作を始めてみたい!」と思っていただけたら、ぜひ読者登録をお願いします。
それではまた次回お会いしましょう。
ここまでお読みいただき、ありがとうございました。
Skin by [mickmick] (Planet Minecraft)
Source: Fate/Grand Order- Frankenstein Skin Minecraft Skin