12日目 他Modのアイテム、ブロックの使用
メモ
どこかで宣言
Mainクラスでも他クラスでも好きなところで。
その後、postInitでBlock.REGSTRY.getObjectを使って登録(代入)する。
一応、登録の前に目的のModが読み込まれているかをif分で確認したほうがベター。
例として、testmodのblock_testを利用。
public static Block otherModBlock; ~~~ @EventHandler public void postInit(FMLPostInitializationEvent event) { //Loader.isModLoaded(MOD_ID)として使用 if(Loader.isModLoaded("testmod")) { TEST = Block.REGISTRY.getObject(new ResourceLocation("testmod:block_test")); } }
アイテムもBlockをItemに変えるだけでほぼ同様かと。
ちなみに他ModのmodidとregystryNameを見る方法は、一度そのModをいれてゲームを起動して、世界を作成して終了。
その後、Modを削除して起動して、先ほど作った世界を開く。
そうするとアイテムが見つかりません的なエラーが出るが気にせず開いてから終了する。
そのあと、logsフォルダの中のlatest.logを見るとエラーメッセージに関するlogが出ているのでこれを参照する。
例
latest.log
************************************************
~~~
20:19:05] [Server thread/INFO] [FML]: Registry Block: Found a missing id from the world testmod:block_test
[20:19:05] [Server thread/INFO] [FML]: Registry Item: Found a missing id from the world testmod:item_test
~~~
************************************************
missingとかで検索かけると楽な気がする。
他にもっといい方法がありそうな気がするので知っている人がいたら教えてください!!