Minecraft本体
BlockID、ItemIDの平坦化・無限化
要は、metaだとかdamageだとか言われていたものが削除された。
羊毛は色それぞれが別ブロックとなり、ツールのダメージはNBTに保存されるようになった。
Stateの上限もなくなっているので、ある程度自由になったと言えるかも。
水、溶岩の挙動に手が入った
水源を特定のブロックが保持できるようになった。
インターフェースによる処理なので、Modであっても実装は容易だろう。
水の流れに関する複雑な処理はBlock
ではなくFluid
(1.13にて追加)が担うようだ。
実装だけ読んだ限りだと、溶岩を保持するのも可能……っぽい?
タグの概念
バニラでは、Block
とItem
とFluid
に用いられている模様。
レシピの材料判定とかそういう感じのところで包括的に扱うための仕組みっぽい。
Jsonで自由にいじることができる。
空気を水扱いにして泳げるようにした実験的データパックとか見た気がする。
もとからあるタグはラッパーを用いてコード内でもJsonでもいい感じに使えるようになってる。
精錬レシピがJson化された
同時に精錬レシピがIRecipe
傘下入り。
まぁある意味では扱いやすくなったとも言えるかも……?
Item
、Block
のコンストラクタの変更
ビルダーパターンが採用され、setHardnessとか言ったプロパティ的なものは初期化時に全部指定して固定化されるようになった。
IItemProvider
Block
とItem
を一緒くたに扱えるようになった。
色んな所でいちいちItemStack
にしなきゃいけなくてめんどくさかったのが解消する。
コマンドの実装が一新された
構文解析のためにいろいろやってる。
ツールのTierがインターフェースで管理されるようになった
前まではいろいろ分散したりしていたのが、インターフェースにまとめられた。
BlockstateのPropertyが共通化された
これまでは同じ内容を表すものであっても個別に宣言されていたが、統一された。
ある程度包括的にブロックを扱えるようになった。
VoxelShape
当たり判定は前までAxisAlignedBB
のリストで扱われていたが、VoxelShape
を使うようになった。
IDataProvider
Mojangはこれであの大量のJsonを用意していたんですね。
Mojangの開発環境で使われているだけなので無視してOK、それだけが言いたかった。
Jsonモデル
パスの省略部分が変更された。
ある程度一括で置換できる部分なのでそう影響はないはず……。
MinecraftForge
9/30現在。
大体方向性ははっきりしているだろうというところに絞っているが、まだまだ変更が見込まれる部分なので実際のコードを見てほしい。
Modの認識方法の変更
META-INF/mods.tomlとかいうのでこれまでModアノテーションでやってきたことの大半をやるっぽい。
CoremodもJsonから認識するようになるらしい?
EventHandlerアノテーションが非推奨に
代替は不明。まだ作られてない?
GameRegistry
なんかスッキリしてる。(findRegistryというメソッド一つになってる)
WIPなのか、もうEvent/Json使ってくれやってことなのかは不明。
Forge Service Provider Interfaces
Side
がDist
というものに変わった。
OnlyIn
アノテーション
SideOnly
アノテーションの代わり。
DistExecutor
SidedProxy
の代わり?
OreDictionary
ほとんどの機能がタグに移行した。
というか、現時点では全範囲がコメントアウトされている。