たくさんの自由帳
Androidのお話
たくさんの自由帳
投稿日 : | 0 日前
文字数(だいたい) : 2130
どうもこんにちわFabric / Forge
共にリリースされているのに1ヶ月も空いてしまいすいません。なんなら1.21.4 移行作業
と一緒に年越ししてしまったのでいい加減やります。
自作MOD
のMinecraft 1.21.4
移行記録です。
ネタバレしますが今回は特に難しいところはないはず。というかあっさり終わって これで良いの? 感がある。一応遊んでみたけど動いてそうなんだよな。
Fabric
の方々が差分を書いてくれているので、それにのっかります。ありざいす。Fabric for Minecraft 1.21.4
Minecraft 1.21.4, the Garden Awakens drop, releases December 3rd. Like with other updates, this drop contains some significant changes affecting mod makers.
https://fabricmc.net/2024/12/02/1214.html
今まで書いてなかったけどFabric
の方は8.11.1
になってました。Forge
は8.7
みたいです。
ブロックのテクスチャでassets/{mod_id}/blockstates
を作るのと同じように、アイテムでもassets/{mod_id}/items
を作るようです。
ファイル名は多分{アイテムID}.json
で、内容は多分こんな感じ。
{
"model": {
"type": "minecraft:model",
"model": "clickmanaita:item/clickmanaita_wood"
}
}
clickmanaita:item/clickmanaita_wood
はMOD の ID
とアイテムの ID
。各自変えてね
アイテム状態のブロックに関しても同様に作成しないとアイテム状態のテクスチャが当たりません。
で、ひとつ朗報があり、アイテムブロックの方は/assets/{mod_id}/models/item
の方のファイルが不要になります。
例えば、assets/{mod_id}/models/item/clickmanaita_block_wood.json
のようなファイルは削除して
{
"parent": "clickmanaita:block/clickmanaita_block_wood"
}
新しくassets/{mod_id}/items/clickmanaita_block_wood.json
ファイルを作成し、以下のように書けば良いです。
{
"model": {
"type": "minecraft:model",
"model": "clickmanaita:block/clickmanaita_block_wood"
}
}
レシピにアクセスしてる箇所がなければスルーできます。
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
を持ってくると速い。
以下例
git checkout 1.21.4-forge
git checkout 1.21.4-fabric src/main/resources/assets/clickmanaita/items/
これ急げば移行作業と一緒に年越しするまでもなかったな...
こんな差分少ないとは思わんかった(てか今までがおかしいんじゃないか?)