[MC1.12]MOD製作チュートリアル > レシピの追加

概要

レシピを追加する。
前のチュートリアルまで実装している段階でのコードである。

ソースコード

残念!ソースコードの追加実装などいらないのだよ!!
あくまでも前のチュートリアルまで実装できていればだが、レシピの実装はjson側で行うため追加コードは必要ない。

アセット

  • aluminium_block.json[recipe]
src/main/resources/assets/aluminiummod/recipes/に配置する
{
  "type": "minecraft:crafting_shaped",
  "pattern": [
    "###",
    "###",
    "###"
  ],
  "key": {
    "#": {
      "item": "aluminiummod:aluminium"
    }
  },
  "result": {
    "item": "aluminiummod:aluminium_block"
  }
}
 

  • aluminium.json[recipe]
{
  "type": "minecraft:crafting_shapeless",
  "ingredients": [
    {
      "item": "aluminiummod:aluminium_block"
    }
  ],
  "result": {
    "item": "aluminiummod:aluminium",
    "count":9
  }
}
 


解説

MC1.12より、今までのレシピの登録方法が非推奨となり、代わりにjson形式でレシピを登録することになった。
その為、バニラにレシピを追加するだけのMODなら 最悪@Modをつけたクラスを作成するだけでjavaに触れるのは終わる。

名称はそのままforge側に登録され、/recipeコマンドで使われるため作られるアイテムのレジスター名にするのが最適である。
まず、type要素でクラフトタイプを指定する。"minecraft:crafting_shaped"で定形レシピ、minecraft:crafting_shapelessで不定形レシピを指定する。
次に、定形レシピではpatternでレシピの形を指定し、その文字に当てはまるアイテムをkeyで指定する。
不定形レシピではingredientsで指定する。
最後に、resultで結果を登録する。
それぞれ : で区切ってある前がMapのkey、後ろがvalueであると考えれば良い。
item要素で<modid>:<レジスター名>、count要素で個数、data要素でメタデータ(アイテムなのでblockstateは登録できない)を指定する。
アイテムの種類を増やしたいときはkey若しくはingredientsを下のように変更すれば良い。
+ ...

レシピ追加通知

MC1.12からの新機能として、「レシピブック」がある。
また、バニラのアイテムは入手したとき右上に「新規レシピ追加」という通知が出る。
今回はアイテムを大量に追加するMOD用に「レシピブック」とイベントを使って通知を出す。
(進捗のシステムを使ってレシピを出すことも出来るが、書くべきjsonファイル数が多くなる。そのやり方は進捗の追加チュートリアルで記載予定。)
+ ...

コメント

この項目に関する質問などをどうぞ。
名前: