1.6.4非公式 littleMaidMob 導入開発環境構築作業内容メモ

1)添い付けのjavaファイルでは導入Forgeバージョンが新しいのを使用すると問題有り、942を使用。
(ModLoader互換サポートがあるバージョンなら良いが、ぎりぎりがいくつか忘れた)

2)MMMLibとlittleMaidMob添い付けのjavaファイルをmcp\src\minecraft\net\minecraft\src\ に置く。

3)中身のパッケージ指定が net.minecraft.src になっていないものを指定のパッケージフォルダに移動。
(eclipseではパッケージエラー箇所をクリック ~に移動クリック。な作業)
4)protectedアクセスをしている理由でエラーが出ている箇所すべてに対して参照元((バニラ)forgeコード側のprotectedをpublicに書き換える)。
(この作業量が一番多い)
5)MMM_TextureManager.javaコード内2カ所で以下の修正を行う。
書き換え元
Package lpackage = mod_MMM_MMMLib.class.getPackage();
Class lclass;
try {
if (lpackage != null) {
cn = (new StringBuilder(String.valueOf(lpackage.getName()))).append(".").append(cn).toString();
lclass = lclassloader.loadClass(cn);
} else {
lclass = Class.forName(cn);
}
書き換え後
String lpackage = "net.minecraft.src";
Class lclass = null;
try {
if (lpackage != null) {
cn = (new StringBuilder(lpackage)).append(".").append(cn).toString();
lclass = lclassloader.loadClass(cn);
}

書き換え元
Package package1 = (net.minecraft.src.ModLoader.class).getPackage();
if(package1 != null)
{
String s = package1.getName().replace('.', File.separatorChar);
file = new File(file, s);
mod_MMM_MMMLib.Debug("addTextureJar-file-Packege:%s", s);
} else {
mod_MMM_MMMLib.Debug("addTextureJar-file-null.");
}

書き換え後
String package1 = "net.minecraft.src";
if(package1 != null)
{
String s = package1.replace('.', File.separatorChar);
file = new File(file, s);
mod_MMM_MMMLib.Debug("addTextureJar-file-Packege:%s", s);
}

説明
getPackage()を最近のForge環境で行ってもnet.minecraft.srcパッケージに関してはnullを返すようになっている仕組みにされているため。
この例では逆に通常クライアント環境では問題になるコードなので開発環境だけできればいい人用である。
理想としては
String lpackage = isRelease ? "" : "net.minecraft.src";
boolean isReleaseの判定方法はうちの方法はあいまいもいいところなのでまかせる。

6)MMM_FileManager.javaの修正
以下の初めのtryの内容をコメントアウト(削除)する。

書き換え元
// 開発中用のJar内に含まれていることの対策
try {

} catch (Exception exception) {
mod_MMM_MMMLib.Debug("getMinecraftFile-Exception.");
}

書き換え後
// 開発中用のJar内に含まれていることの対策
/*
try {

} catch (Exception exception) {
mod_MMM_MMMLib.Debug("getMinecraftFile-Exception.");
}
*/
説明
略\bin で終わるアドレス取得が理想に対して結果が 略 BaseMod.class になってしまう。
一つ目のやり方をコメントアウトして2つめの方法にまかせた方が結果が良い。

7)LMM用テクスチャーをlittleMaid対応のいくつかのアドレスのどこかに置く。
MMMLib:/mob/ModelMulti/
MMMLib:/mob/littleMaid/
MMMLib:/assets/minecraft/textures/entity/ModelMulti/
MMMLib:/assets/minecraft/textures/entity/littleMaid/
littleMaidMob:/mob/littleMaid/
littleMaidMob:/assets/minecraft/textures/entity/littleMaid/

例)
mcp\src\minecraft\assets\littleMaidMob\textures\mob\littleMaid\default\

8)起動してテストしてみる。

Reply · Report Post