Original OreExcavation for Minecraft 1.16.1!

Overview

長らく愛用しているOreExcavation。
1.16でもこれを使いたいけれど、いつForgeが安定版になるかわからないし、いつ1.16対応のものを出してくれるかもわからない。
ということで、思い切って1.15用のやつを自力で1.16用に調整してみた。
丸一日くらいで完了。

OreExcavation

CurseForge

Howto

とりあえず1.16Forgeのmdkとってきて展開、Intellijでインポート。
1.15用のやつ展開してsrcに突っ込む。
当然エラーたくさん出るので解決していく。
色々1.15から1.16への変更があるようだが、変更は主に二種類ある。
1つは既存の関数名が違うものに置き換わってるもの。
これは1.15と1.16のマイクラソースを見比べれば全部解決。
もうひとつが仕組み自体変わっているもの。
主に、GUIのレンダリング関係と、ItemTags関連。

GUIレンダリング関係

なんだかStackMatricなる引数が追加されている。
renderとかにも逐一第一引数で渡されるので、一通り1.16用に変更してやらなくちゃいけない。
本質としてはOpenGLのPushとかPopとかと同じものかな。

ItemTags関連

ここがだいぶ面倒だった。
ItemTags.getCollection().get

でとってこれるものがTagからITagに変わってたり、ItemTagsのgenerationがなくなってたり。
OreExcavationではこのgenerationで管理してる部分もあったので、ここを適当に差し替え。
ITagからは従来のgetAllElementで返していたCollectionではなくListを返すようになったようなので適当に置換。

動作確認

諸々解決していざビルドし、なんと一発成功。
さっそくForge環境にjarを突っ込み動作確認!
cube

起動確認。Optifileとも共存OK。
cube

ワールド読み込み確認。1.15用のjarをそのまま1.16Forgeに突っ込んだときはワールド読み込みでフリーズしたので、ここを乗り越えて一安心。
bでGUI起動確認。形状のセーブも正常にされている。
cube

キーコンフィグも問題なし。
cube

rを押しながら一括破壊。
ついでによく使ってるShaderPackであるprojectLUMAを添えて。

結果

GUIで一部文字入力がおかしいが、それ以外は全く問題なく動作した。
作者のFunwayguyさんとdarkostoさんに感謝します。

Modの改変とかって権利的にどうなんでしょう。
基本的にModも含めて全部Mojangに帰属するのかな。
それでも勝手に今回みたいな改変版を再配布とかするのは作者に単純に失礼な気はするが。