提供: Minecraft Modding Wiki
2019年3月28日 (木) 00:58時点におけるModderKina (トーク | 投稿記録)による版
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
移動先: 案内検索

英語が読めるのであれば、williewillus氏による1.13指南書が参考になるだろう。

Minecraft本体

データパック

ついにデータパックが正式実装。
1.12では不完全だったが、いよいよ使えるものになった。
ディレクトリ階層もすこし変更されているので注意が必要。

BlockID、ItemIDの平坦化

要は、metaだとかdamageだとか言われていたものが削除された。
羊毛は色それぞれが別ブロックとなり、ツールのダメージはNBTに保存されるようになった。
Stateの16上限もなくなっているので、ある程度自由になったと言えるかも。
IDの無限化はまだ夢幻 無事1.13.2で解決

水、溶岩の挙動に手が入った

水源を特定のブロックが保持できるようになった。
インターフェースによる処理なので、Modであっても実装は容易だろう。
水の流れに関する複雑な処理はBlockではなくFluid(1.13にて追加)が担うようだ。
実装だけ読んだ限りだと、溶岩を保持するのも可能……かもしれない?

タグの概念

バニラでは、BlockItemFluidに用いられている模様。
レシピの材料判定などの幅広い部分で要素を包括的に扱うための仕組み。
Jsonで自由にいじることができる。要はJson版鉱石辞書。

精錬レシピがJson化された

同時に精錬レシピがIRecipe傘下入り。
まぁある意味では扱いやすくなったとも言えるかも……?

ItemBlockのコンストラクタの変更

ビルダーパターンが採用され、setHardnessとか言ったプロパティ的なものは初期化時に全部指定して固定化されるようになった。

IItemProvider

BlockItemを一緒くたに扱えるようになった。
色んな所でいちいちItemStackにしなきゃいけなくてめんどくさかったのが解消する。

コマンドの実装が一新された

構文解析のためにいろいろやっている。
コードの見通しも良くなったため、複雑な構文も比較的容易に追加できるようになった。

ツールのTierがインターフェースで管理されるようになった

前まではいろいろ分散したりしていたのが、インターフェースにまとめられた。

BlockstateのPropertyが共通化された

これまでは同じ内容を表すものであっても個別に宣言されていたが、統一された。
ある程度包括的にブロックを扱えるようになった。

VoxelShape

当たり判定は前までAxisAlignedBBのリストで扱われていたが、VoxelShapeを使うようになった。

リソースパック ver.4

Jsonモデル

パスの省略部分が変更された。
ある程度一括で置換できる部分なのでそう影響はないはず……。

言語ファイル

これまでJavaのproperties形式であったが、Json形式に変更された。
コメント機能が無いのが大きな違いといえば違いだが、未割り当てキーの使用等で対処可能。

MinecraftForge

2019/02/24現在。
大体方向性ははっきりしているだろうというところに絞っているが、まだまだ変更が見込まれる部分なので実際のコードを見てほしい。
闇深でレガシーなコードを整理するために大規模な改修が行われ、多くの部分が影響を受けることになる。

Modの認識方法の変更

これまでModアノテーションで指定してきたことはMETA-INF/mods.tomlに移動した。
ModアノテーションはエントリクラスをFMLに示すための純粋なマーカーとなるようだ。
CoremodもJSから認識するようになるとか。

Config

刷新され、独自フォーマットではなくtoml形式が用いられるようになった。
ロードセーブまわりの仕様も変わり、よりConfigGUIなどのオンゲームでの変更に強いものとなった。
書き方の作法も当然様変わりしている。
ファイル形式を自由にしようとしている形跡があるが、どうなるかは不明。

LifecycleEvent

これまでEventHandlerアノテーションを用いていたEvent群が再編された。
それに伴いEventHandlerアノテーションは削除された。
代わりにコンストラクタで、FMLJavaModLoadingContextを通じて取得したEventBusにメソッドを登録していく。

  1. FMLCommonSetupEvent
  2. FML(Client|DedicatedServer)SetupEvent
  3. InterModEnqueueEvent
  4. InterModProcessEvent

の順で呼び出される。アイテムやブロックの登録イベントはこれらより前に発火される。
並列に処理されるようになったため、Modのロード順などの概念はなくなった。
SetupEvent時点でブロック等は登録されている はず なため、連携する上では問題ない。

GameRegistry

findRegistryというメソッド以外は削除された。
登録処理は主にイベントを通じてアクセスすることになる。

Forge Service Provider Interfaces

SideDistというものに変わった。

OnlyInアノテーション

SideOnlyアノテーションの代わり。

DistExecutor

SidedProxyの代替。
ラムダ式等を用いてよりモダンに蔵鯖の分岐処理をかけるようになる。

OreDictionary

タグに機能が移行した。
クラスは削除され、もはや使用することはできない。

ForgeGradle

version3.xとなり、環境構築手順が変わった。