たくさんの自由帳
Androidのお話
たくさんの自由帳
投稿日 : | 0 日前
文字数(だいたい) : 2130
どうもこんにちわ
Fabric / Forge
共にリリースされているのに1ヶ月も空いてしまいすいません。なんなら1.21.4 移行作業
と一緒に年越ししてしまったのでいい加減やります。
自作MOD
のMinecraft 1.21.4
移行記録です。
ネタバレしますが今回は特に難しいところはないはず。というかあっさり終わって これで良いの? 感がある。一応遊んでみたけど動いてそうなんだよな。
今回も今回とてFabric
の方々が差分を書いてくれているので、それにのっかります。ありざいす。
https://fabricmc.net/2024/12/02/1214.html
https://takusan.negitoro.dev/posts/minecraft_mod_1_21_2_migration/
今まで書いてなかったけどFabric
の方は8.11.1
になってました。
Forge
は8.7
みたいです。
ブロックのテクスチャでassets/{mod_id}/blockstates
を作るのと同じように、アイテムでもassets/{mod_id}/items
を作るようです。
ファイル名は多分{アイテムID}.json
で、内容は多分こんな感じ。
clickmanaita:item/clickmanaita_wood
はMOD の ID
とアイテムの ID
。各自変えてね
アイテム状態のブロックに関しても同様に作成しないとアイテム状態のテクスチャが当たりません。
で、ひとつ朗報があり、アイテムブロックの方は/assets/{mod_id}/models/item
の方のファイルが不要になります。
例えば、assets/{mod_id}/models/item/clickmanaita_block_wood.json
のようなファイルは削除して
新しくassets/{mod_id}/items/clickmanaita_block_wood.json
ファイルを作成し、以下のように書けば良いです。
レシピにアクセスしてる箇所がなければスルーできます。
Stream API
ってのは他の言語で言うところのコレクション(配列)の操作関数の集まりで、filter { }
とかmap { }
とかのあれ。
Java
だと明示的にstream()
を呼んで変換する手間があったのでまあJava
で書いてる人向けなのかも。
Kotlin
だといい感じに関数を生やしてくれてたので特に困ってなかった。というか配列じゃなくてStream
になったのでちょっと直さないとかも。
placementSlots
、レシピのパターンでスロットを使っていない場所(チェストだと真ん中のスロットは空っぽですよね)
は-1
を返すようになった?ので、placementSlots
の分for
で回してingredients[i]
している箇所があれば-1
が来たときにはItemStack.EMPTY
するなど対策が必要そう。
代替メソッドがわからない。toDisplay().getStacks()
かなあ。
なおContextParameterMap
はSlotDisplayContexts.createParameters(World)
で作れます。
Fabric 1.21.3 -> 1.21.4
Forge 1.21.3 -> 1.21.4
Fabric
もForge
もJSON
作って消すだけなので、両方作ってる場合は片方で作ってもう片方のMOD Loader
の移行作業の際にはgit checkout ファイルパス
でJSON
を持ってくると速い。
以下例
これ急げば移行作業と一緒に年越しするまでもなかったな...
こんな差分少ないとは思わんかった(てか今までがおかしいんじゃないか?)