14.23.1.2555~"を前提MODとしています。初心者向けのチュートリアルです。Itemに関係のあるチュートリアルです。crow_face.json旧方式を使ったItemの作成[編集]1.12.2現在、ItemやBlockを登録する方法は2通りあります。ForgeによってEventが呼ばれて登録処理を行います。メインクラスのpreInitで、自分でメソッドを呼びます。どちらでも可能ですが、今回は自分で呼ぶ方式を解説します。処理の主な流れ[編集]アイテムとは、インベントリ上で表示されたり、ドロップ状態でゲーム中に出現する概念です。インゴットや、リンゴ、苗木など、バニラでもたくさんの種類があります。このゲームでは、ItemやBlockは1種類につき1個だけインスタンスが生成され、それをForgeに登録します。以後は同じインスタンスがずっと使いまわされます。アイテムを追加するときは、インスタンスを一つだけ生成する登録メソッドを呼んで、Forgeに登録するモデルを登録するというステップで進行します。順番を間違えると、nullエラーなどが発生してしまうので、上記の順番で処理が進むように書きます。ソースコード[編集]CrowItem.java[編集]MODの起動に必須のメインクラスです。Forgeはゲームの起動時に@Modアノテーションのついているクラスを探して読み取り、含まれている起動時の処理を行ってくれます。(つまり、初期設定など起動時の処理で呼んでほしいものは、必ずメインクラスの適切なところで読み取られるように書いておかなければなりません。)MODのIDやアイテムの名前などは好きなものに変えていい部分なので、自分の作りたいものに合わせて書き換えてください。ここのパッケージは、自分の開発環境に合わせて変えてください。モデル登録もpreInitで呼ぶ。イベントのSideがどちらかを判別して、条件分けをする。クライアントサイドの時だけ、モデル登録を呼ぶ。*/}}CrowItem.java[編集]Item継承のクラスは作らなくても一応Item作成はできるが、凝ったことがしたい場合はこのようにクラスファイルを作成した方が作りやすい。今回は、使いたい人が多そうな機能に絞って、Overrideすることで機能を追加できるメソッドの解説を添えた。ブロックの破壊速度を変えることができる。ツールの破壊可能対象とは違うので、破壊できないブロックでも早く壊してしまう点に注意。速度をfloatで返す。1.0Fで素手と同じ、大きくすると早くなる。Entityを殴ったときの攻撃力と攻撃速度を変更する。Entityのステータス変更はAttributeModifierというものを使用する。ちなみに、AttributeModifierを自作してオリジナルのステータス変化を作ることもできる。アイテムのツールチップの内容を増やす。どのクリエイティブタブにこのアイテムを表示するか。複数のタブに出現させたり、特定のメタデータだけを表示させる、NBTデータを持たせて表示させるなどの細かい制御もここでできる。このアイテムのスタックを作ってリストに追加する。0));}}}crow_face.json[編集]このアイテムのjsonモデル。jsonモデルは、parent(親モデル)を指定することができる。親モデルの一部を変えたい場合は、変えたい部分のみを記述すればそこだけ置き換わる。下記の例は、"item/generated"(ふつうの平面アイコン)を指定した上で"texture"だけ指定しているので、テクスチャだけ差し替えて、そのほかは親モデルと同じ平面アイコンを使うモデルになる。テクスチャの種類(ここでは"layer0")は、親と同じものを指定することで、指定した種類を差し替えることができる。テクスチャはファイルが入っているパスを指定する。この場合、karasuman_item/textures/items/crow_face.pngになる。