どもです。
主にmineallやcutallへのMOD鉱物・樹木の反映を行う場合、対象のブロックIDを入手する必要があります。
一昔前はIdCheckerやNameWakanderといったMODを入れればマイクラ起動時に自動でブロックIDの書き出しを行ってくれました。
しかし、これらのMODは1.19や1.20には対応していません。現在、IDをテキストデータとして一括で入手する手段が無くなってしまいました。
そこで、MODのブロックIDをテキストデータで入手する方法を紹介します。
とはいえ、これは全てのMODで必ず成功する手段、というわけではないので、そこはご了承ください。
今回はHeatAndClimateを例として提示します。
①「高度な情報」を有効にし、ゲーム内でブロックIDを参照する
ここまではググるとよく出てくる話。
F3キーとHキーを同時押しすると、「高度な情報」という機能が有効になります。
この状態でIDを知りたいブロックにカーソルを当てると、オレンジ枠の情報が出現します。
ブナの原木のIDは「dcs_climate:food/log_beech_common」だと分かりました。
しかし、これを目視でcutallのconfigに写すのは大変です。数が多いとスペルミスも心配。
② langファイルから、ブロック名を逆引きする
MODには、オブジェクトの名称が羅列されているファイルがあります。
langディレクトリ以下のJSONファイルです。
こちらを開くと、以下の記載を発見。
ありました。
この名称は、「ブロックID」とは違うもののため、先ほどゲーム内で確認したIDとは微妙に異なっています。
が、概ねは同じ。法則は分かります。
こちらをconfigにコピペして、ブロックIDに直してあげれば良し。
langファイルのオブジェクト名とブロックIDに相関のあるMODであれば、この方法で対応できます。
※MODを破損する可能性があるため、7zip等でjarの中身を見る場合は、modを複製して行うことを推奨します。
③ テキストエディタで一括置換!
とはいえ、当然ですが、configに追加したい原木はブナ1本ではありません。
このMODの全原木を追加したいわけです。
ここまでくれば手動でも可能ではありますが、正規表現が使える方は更に楽をしましょう。
langファイルの原木情報を、丸ごとサクラエディタなどにコピペします。
あとは、
これを、
こう。
先ほど調べた命名規則に従って、一括置換します。
これをconfigに貼れば、15種類の原木を一気に網羅できてしまいました。
というわけで、一括破壊MODに他MODのブロックを適用することに成功しました。
書き出しMODを使うのに比べれば手間がかかりますが、目視の手打ちよりは絶対的に楽です。スペルミスもありません。
更に楽をするには正規表現の最低限の知識が必須ですが、よろしければお試しくださいませ。