NakanishiのForge1.20.1のJavaMod開発講座

MoreCropsDelightの作者、NakanishiがMod制作について書いていきます。

JavaでMinecraftのModを作ろう☆ GUIブロック編② 〜仮のBlockEneityのクラスを作ろう〜

こんばんは。Nakanishiです。

Discordサーバーを運営中です。

Kazushi_Nakanishiのこっそりサーバー

一緒にゆるくMod制作を楽しみませんか?
初心者も大歓迎です。

※)日本語での会話ができる方のみ参加可能です。
  条件に合わない方は参加をご遠慮ください。

 

 

前回のおさらい

仮のBarrelBlockを作りました。

JavaでMinecraftのModを作ろう☆ GUIブロック編① 〜仮のブロックを作ろう〜 - NakanishiのForge1.20.1のJavaMod開発講座

今回はBlockEntityというクラスを仮の形で作っていこうと思います。

例えば樽やかまどのように、中にアイテムを保持するブロックは必ずBlockEntityを持っています

 

※)今回の記事は応用編なので、基礎編を読んでいる前提です。

 

まずBlockEneityの説明ですが、GUIブロックの中身やデータを保存するクラスになります。

BlockEneityがないままで仮にGUI表示が出来たとして、BlockEneityがなければただのスクリーンでしかありません。

なので、GUIブロックには必須のクラスとなります。

 

①BlockEntityのクラスを作ろう

名前は【PaleOakBarrelBlockEntity】にしました。

 

樽やチェストのようなブロックは【RandomizableContainerBlockEntity】というクラスを使います。

RandomizableContainerBlockEntity】というクラスはインベントリと持ち、必要ならダンジョンのチェストのように、ランダム生成も出来るコンテナ用のブロックのクラスになります。

 

赤線が引かれているのは必要な引数とメソッドが足りない為です。

赤線のところで右クリックをして【Show Context Actions】を選択します。

そうしたらまず、【Implement methods】をして、最低限必要なメソッドを表示させてあげてください。

 

確認画面

この画面が出たら【OK】で大丈夫です。

 

そうすると5つ@Overrideが出て、メソッドが表示されます

それでも赤線が引かれていると思いますので、またShow Context Actions】を選択して、Creat constructor matching super】を選んであげてください。

 

仮のパラメータと引数、メソッドが表示された画面

このままでも良いのですが、パラメータと引数が仮表示になっているので整えてあげます。

 

例)

protected PaleOakBarrelBlockEntity(BlockPos pos, BlockState state) {
        super(pos, state);
    }

 

赤線が引かれているのは引数が足りないからであって、まだ入力出来ないので大丈夫です。BlockEneityを登録した後に修正します。

 

次に【setItems】と【createMenu】のメソッドの仮の引数を直してあげます。

 

setItems例)

@Override
    protected void setItems(NonNullList<ItemStack> items) {

    }

 

createMenu例)

@Override
    protected AbstractContainerMenu createMenu(int id, Inventory playerInventory) {
        return null;
    }

 

修正したメソッド

 

これで仮のBlockEntityのクラスは一旦完成です。

赤線が引かれていますが、次回修正します。

 

 

ここまでお疲れ様でした☆

次回は今回作ったBlockEneityのクラスを登録して、赤線が消えるまでしようと思います。

 

もしこの記事が参考になった、または「JavaでMod制作を始めてみたい!」と思っていただけたら、ぜひ読者登録をお願いします。
それではまた次回お会いしましょう。
ここまでお読みいただき、ありがとうございました。

 

次回記事

JavaでMinecraftのModを作ろう☆ GUIブロック編③ 〜仮のBlockEneityを登録しよう〜 - NakanishiのForge1.20.1のJavaMod開発講座