こんばんは。Nakanishiです。
Discordサーバーを運営中です。
一緒にゆるくMod制作を楽しみませんか?
初心者も大歓迎です。
※)日本語での会話ができる方のみ参加可能です。
条件に合わない方は参加をご遠慮ください。
今回からGUIのあるブロックの作り方を書いていきます。
GUIのあるブロックはチェスト、かまど、石切台など色々ありますが、
今回は一番シンプルな樽の作り方を紹介していこうと思います。
今回の記事は応用編なので、基礎編を読んでいる前提です。

①テクスチャ、JSONファイルを用意しよう




樽に必要なテクスチャは上記の4枚になります。
次に【models/block】を用意していきます。
【models/block】は閉じている状態と開いている状態の2つが必要になります。
pale_oak_barrel.json例)
{
"parent": "minecraft:block/cube_bottom_top",
"textures": {
"bottom": "nakanishi_mod:block/pale_oak_barrel_bottom",
"side": "nakanishi_mod:block/pale_oak_barrel_side",
"top": "nakanishi_mod:block/pale_oak_barrel_top"
}
}
pale_oak_barrel_open.json例)
{
"parent": "minecraft:block/cube_bottom_top",
"textures": {
"bottom": "nakanishi_mod:block/pale_oak_barrel_bottom",
"side": "nakanishi_mod:block/pale_oak_barrel_side",
"top": "nakanishi_mod:block/pale_oak_barrel_top_open"
}
}
これで【models/block】は完成です。次に【models/item】を書いていきます。
pale_oak_barrel.json例)
{
"parent": "nakanishi_mod:block/pale_oak_barrel"
}
これで【model】は完成です。次に【blockstate】を書いていきます。
pale_oak_barrel.json例)
{
"variants": {
"facing=down,open=false": {
"model": "nakanishi_mod:block/pale_oak_barrel",
"x": 180
},
"facing=down,open=true": {
"model": "nakanishi_mod:block/pale_oak_barrel_open",
"x": 180
},
"facing=east,open=false": {
"model": "nakanishi_mod:block/pale_oak_barrel",
"x": 90,
"y": 90
},
"facing=east,open=true": {
"model": "nakanishi_mod:block/pale_oak_barrel_open",
"x": 90,
"y": 90
},
"facing=north,open=false": {
"model": "nakanishi_mod:block/pale_oak_barrel",
"x": 90
},
"facing=north,open=true": {
"model": "nakanishi_mod:block/pale_oak_barrel_open",
"x": 90
},
"facing=south,open=false": {
"model": "nakanishi_mod:block/pale_oak_barrel",
"x": 90,
"y": 180
},
"facing=south,open=true": {
"model": "nakanishi_mod:block/pale_oak_barrel_open",
"x": 90,
"y": 180
},
"facing=up,open=false": {
"model": "nakanishi_mod:block/pale_oak_barrel"
},
"facing=up,open=true": {
"model": "nakanishi_mod:block/pale_oak_barrel_open"
},
"facing=west,open=false": {
"model": "nakanishi_mod:block/pale_oak_barrel",
"x": 90,
"y": 270
},
"facing=west,open=true": {
"model": "nakanishi_mod:block/pale_oak_barrel_open",
"x": 90,
"y": 270
}
}
}
これで【blockstate】は完成で、見た目のJSONファイルは完成です。
②CLASSファイルを作ろう
名前は【Block_Pale_Oak_Barrel】にしました。

樽は【BarrelBlock】を使います。
例)
extends BarrelBlock

赤線が引かれてますので、仮のパラメータと引数を表示させてあげましょう。
赤線のところで右クリックをして【Show Context Actions】を選択します。
そうしたら【Creat constructor matching super】を選択してください。

そうしたら()内を消してあげて、引数を入力していきます。
例)
super(Properties.copy(Blocks.BARREL));

ここではまだブロックの状態で、GUIは開けません。
GUI設定は後ほど追記していくので、この状態で置いておきます。
次にブロック登録をしていきます。
ブロック登録例)
public static final RegistryObject<Block> PALE_OAK_BARREL = BLOCKS.register("pale_oak_barrel", Block_Pale_Oak_Barrel::new);
アイテム登録例)
public static final RegistryObject<Item> PALE_OAK_BARREL = BLOCK_ITEMS.register("pale_oak_barrel"
, () -> new BlockItem(Blocks.PALE_OAK_BARREL.get(), new Item.Properties()));
これで【Pale Oak Barrel】がゲーム内に登録されました。
それでは残りの登録もしていきましょう。
③設定を追加しよう
まず翻訳を追記します。
"item.nakanishi_mod.pale_oak_barrel": "Pale Oak Barrel",
"block.nakanishi_mod.pale_oak_barrel": "Pale Oak Barrel"
次にクリエイティブタブに追加して、ワールドに置けるか確認してみます。

【BarrelBlock】には内部で向きを設定してあるので、このように横向き、縦向きに設置することが出来ます。
ここまで出来たら、最低限のブロックは完成です。
ここまでお疲れ様でした☆
次回は【BlockEntity】というクラスについての説明と、実際に仮のものを作ってみようと思います。
もしこの記事が参考になった、または「JavaでMod制作を始めてみたい!」と思っていただけたら、ぜひ読者登録をお願いします。
それではまた次回お会いしましょう。
ここまでお読みいただき、ありがとうございました。
【次回記事】
JavaでMinecraftのModを作ろう☆ GUIブロック編② 〜仮のBlockEneityのクラスを作ろう〜 - NakanishiのForge1.20.1のJavaMod開発講座