たくさんの自由帳
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.4Forge 1.21.3 -> 1.21.4Fabricも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/これ急げば移行作業と一緒に年越しするまでもなかったな...
こんな差分少ないとは思わんかった(てか今までがおかしいんじゃないか?)