Minecraft本体
データパック
ついにデータパックが正式実装。
1.12では不完全でまともに機能してなかったはずだが、いよいよ使えるものになったぞ。
ただ、ディレクトリ階層とかそのへんはちょっと変更されたので注意。
BlockID、ItemIDの平坦化
要は、metaだとかdamageだとか言われていたものが削除された。
羊毛は色それぞれが別ブロックとなり、ツールのダメージはNBTに保存されるようになった。
Stateの上限もなくなっているので、ある程度自由になったと言えるかも。
IDの無限化はまだ夢幻。 無事1.13.2で解決
水、溶岩の挙動に手が入った
水源を特定のブロックが保持できるようになった。
インターフェースによる処理なので、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
を使うようになった。
リソースパック ver.4
Jsonモデル
パスの省略部分が変更された。
ある程度一括で置換できる部分なのでそう影響はないはず……。
MinecraftForge
9/30現在。
大体方向性ははっきりしているだろうというところに絞っているが、まだまだ変更が見込まれる部分なので実際のコードを見てほしい。
Modの認識方法の変更
META-INF/mods.tomlとかいうのでこれまでModアノテーションでやってきたことの大半をやるっぽい。
ModアノテーションはエントリクラスをFMLに示すための純粋なマーカーとなるようだ。
CoremodもJSから認識するようになるらしい?
GuiFactory
Modアノテーションが変わったので当然こっちのやり方も変わった。
EventHandlerアノテーションが非推奨に
メソッド参照を使うなりして自分でFunctionを登録しろやって事っぽい。
蔵鯖関係の配慮なのかな?多分そうだと思う。
GameRegistry
なんかスッキリしてる。(findRegistryというメソッド一つになってる)
WIPなのか、もうEvent/Json使ってくれやってことなのかは不明。
Forge Service Provider Interfaces
Side
がDist
というものに変わった。
OnlyIn
アノテーション
SideOnly
アノテーションの代わり。
DistExecutor
SidedProxy
の代わり?
まぁそうでなかったとしても、なんかいちいちロジカルサイド判定して三項演算子でバーンとかはする必要がなくなった。
OreDictionary
ほとんどの機能がタグに移行した。
というか、現時点では全範囲がコメントアウトされている。