提供: Minecraft Modding Wiki
2012年12月11日 (火) 01:02時点におけるTakanasayo (トーク | 投稿記録)による版 (FMLの記述を削除)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
移動先: 案内検索
この記事は執筆中です。加筆してくださる人を募集しています。

MinecraftForgeにはModLoaderの機能が含まれているが、一部のMODが正常に機能しない。
これはForgeで新たに追加されたメソッドが、既存のメソッドを呼ばなくなってしまった事に起因する。

このページでは、実際に使われなくなったメソッドを公開する。

Block.class[編集]

float blockStrength(EntityPlayer par1EntityPlayer)[編集]

このメソッドは、ブロックの破壊速度を返す。
規定値はcanHarvestBlockを参照し、ツールの種類に合わせた破壊速度を返す。

このメソッドはForge環境では非推奨アノテーションが付与されており、他から参照されない。
代わりに

float blockStrength(World world, EntityPlayer player, int x, int y, int z)

もしくは

float blockStrength(EntityPlayer player, int meta)

を使う事が推奨されている。

blockStrength(EntityPlayer par1EntityPlayer) がオーバーライドされたMODは、Forgeでは正常に動作しない。


boolean func_50074_q()[編集]

このメソッドは、シルクタッチで回収可能かどうかを返す。
規定値は、renderAsNormalBlock() && !isBlockContainer を返す。

Forge環境では canSilkHarvest() となっているが、これは他から参照されない。
にもかかわらず、非推奨アノテーションも付与されていない。
代わりに

boolean canSilkHarvest(World world, EntityPlayer player, int x, int y, int z, int metadata)

を使う必要がある。

func_50074_q()がオーバーライドされたMODは、Forgeでは正常に動作しない。

対応するForgeのバージョン[編集]

筆者が確認したのは、[1.2.5]Forge3.3.7_135 ~ [1.4.5]Forge6.4.0_397 までだが一切修正されていない。
この前後のバージョンでも同様に不具合が発生している可能性がある。
ModLoader用のMODをMinecraftForgeに移植する際には注意が必要である。

対応方法[編集]

ModLoaderとForgeの両対応のMODを作りたいなら、これらのメソッドを両方定義してやる必要がある。
片方だけでは、もう一方で動かなくなるので注意しよう。