追加アイテムも増えてきましたのでそろそろ自分のmod用のクリエイティブタブが

欲しくなりませんか?('ω')私は欲しくなったので今回はクリエイティブタブの追加を

行います(`・ω・´)いっぱいアイテム追加が増えるとまた入れなおすのも大変ですしね。

 

クリエイティブタブの追加なのでCreativeTabsクラスを見ます!

アイテム登録したところの記述からか、

検索して探してクラスを開きます。

classの前になんかついています。アブストラクトは抽象とか曖昧とかいう意味らしいです。

抽象メソッドクラスを含むクラスにはabstractを付けなければいけないという決まりが

あるらしいです。このabstractが付いたクラスを抽象クラスというみたいです。

抽象クラスにはnewによるインスタンス化が禁止されるという制約がつきます。

間違ってnewしないようにとオーバーライドを強制させるためだそうです。今は関係ないけど。

ここでは継承したクラスにもabstractを付けなければいけないということが大事なのです。

 

次はタブの種類が配列になっていることに注目します。

最初 }; を見て何かわからなかったけど(;´Д`)

メソッドを配列にいれているのか~(;´・ω・)と 末尾に;をつけますからね・・・。

こんなやり方もあるんですね~勉強になります。

 

このメソッドをそのまま使って新しく配列に加えればいいみたいですね。

 

コンストラクタメソッド。

名前からgetNextIDは配列番号の最後の次の番号を取得するものっぽいですね。

下の複雑そうなのは直接次の配列番号を入れるタイプみたいですね。intってなってるし。

getNextIDメソッドはこんな感じみたいです。

lengthはたしか配列の長さを取得するもの・・・。

コンストラクタメソッドのところでif~+1とかなっているからいいのか。

またまた下の方にclassを追加します。CreativeTabsを継承させます。abstractはどうしたのかって?後でちゃんとつけるように促されるので今はいいのですabstractなんて打つのも覚えるのも面倒ですし・・・大体は候補をだして選択するだけなのです(´・ω・`)

コンストラクタを入れろと促されるので入れます。どちらでもできますので好きな方でw

とりあえずint Stringの方からやってみます。

便利機能で()の中を変えるだけ♪

配列の大きさ・・長さ?とにかく12になっていたので13にしたいところですが

配列番号は0から始まるので最後が11になっています。なので次の番号は

12なので12と入れます。数値の代わりにgetNextID()としてもいいです。

後ろの文字列はタブの名前を入れます。

ほらabstractを促されましたねでも実装されていないメソッドの追加も必要なので

先にメソッドからw

微妙・・・・これを消して・・・。

CreativeTabsクラスのをコピペしましょう。

なんて楽なんだ!後はちょっと書き換えるだけです。

レッドストーンもあれなんでブックにしてみました自分の画像も使えますよ。

白い枠の中を自分仕様に書き換えます。全部大文字のところは定数の宣言ですね。

MISCとかFOODとかと同じ感じにします。12は配列番号(getNextID()としてもいいです。)

文字列は先ほど入れた自分のタブの名前

ItemStack(アイコンにしたいアイテムとかブロックとか)は

好きなアイコンをいれます。今回はアイテムなので簡単な記述ですがブロックだと

またreturn new ItemStack(Item.getItemFromBlock(Blocks.GOLDEN_RAIL));みたいに

getItemFromBleckを使用します。12種類ものタブがすでにあるのでそこから

自分のしたいアイコンに合わせたものをコピペすればいいと思います。

いつでもいいので必ずabstractをつけます。

これで完成なのですが・・・まだ中身が何も入ってません。

中身をいれないと出てこないので中身をいれます。

とりあえずルビーを入れておきます。setCreateiveTabのところを先ほど設定した

自分のタブに書き換えます。ちゃんと候補に入ってますよ(*´Д`)

うまくいっているとちゃんと候補に入っているのです( *´艸`)失敗してると入ってません(-_-;)

コピペして書き換えただけだからよほど名前の書き換えなどをミスってない限りは

うまくいくに決まっていますね(;'∀')

次はいつもどうりlangファイルの方も追加の記述をします。

タブはitemGroup。

Forgeのマイクラのlangファイルをみればどう書くのかわかります。

英語の方も同様に追加しておきましょう。

追加されていますね(`・ω・´)ふふ・・・(*´Д`)

こんなに簡単にうまくいくなんて~♪天才じゃないかしら?と自画自賛。

いや・・Forge作った人が偉いんですけどね(-_-;)

私は自分に激甘なのでこうやって自画自賛しつつ自分を鼓舞しているのです。

すぐ自分にご褒美も与えがちですしね(´・ω・`)

もう一つのコンストラクタの引数を選択した場合。

12と配列の番号を入れていたところに配列番号を取得するメソッドを入れます。

(12と直接数値をいれてもいいです。)

アイコンを自分で追加を行ったルビーにしました。

ルビーアイコンになりました(*'ω')

アイコンをブロックタイプにしてみます。

 

※他のmodも入れる場合はgetNextIDにしておいた方がいいです。

他のmodでもクリエイティブタブの追加を行っているmodとそうでないmodがあると

思いますが他のmodではたぶんgetNextIDを使っていると思いますし他のmodが

何番で登録しているかなんてわからないので(-_-;)

先ほどクリエイティブタブを追加しているmodを入れて試してみたら他のmodのクリエイティブ

が反映されなくなる現象が起こりました(´・ω・`)クラッシュしないだけましだけどね。

右のメニューからは取り出しができますけども他のmodとの兼ね合いは大事ですね。

modが読み込まれる順番によっては・・・12番を先に取られたらこちらが12番としていた場合は12番はありませんよとなるのかも。