[Minecraft]IC2exModding備忘録

NanoLaser開発を再開するためにも、MCP上でIC2を導入しないと行けない。
しかし、どうやればいいのか全く分からない。

とりあえずIC2exのソースコードをデコンパイルしてみる。

バージョンは
minecraft 1.6.4
forge 965
industrialcraft-2_2.0.397-experimental

Minecraft MOD開発 2

この記事ではEnderIOのデコンパイルを試みているので、これと同じ手順でIC2Exをデコンパイルする。

結果、同じくエラーが出たもののデコンパイルは終了。エラー100個警告13個。

別に作っていたNanoLaserとIC2exAPIを導入したForgeMCPにデコンパイルしたic2フォルダをコピーしてみたが、失敗。
どうやらデコンパイルしたic2のソースコードの難読化が一部解除されていないらしい。
いろいろ根本的に間違っているかもしれない。

難読化に関して
[Minecraft]mod作成専用スレ>>801

1.6.4版を作ってくれた方に聞くのが一番早いかもしれない。
スポンサーサイト

【Minecraft】IC2API導入 備忘録

IC2アドオォン作りたくなったのでメモ

1.
Forge環境を作る。

2.
IC2APIを落とす。
1.115
http://forum.industrial-craft.net/index.php?page=Thread&threadID=8831

IC2APIのzipを解凍すると「ic2」フォルダが出来るので、それを、
forge\mcp\src\minecraft に入れる。

または、
Eclipceインポート
Eclipceのインポート→アーカイブファイル選択→次へ→
ソースアーカイブファイルの「参照」からIC2APIのzipを選択→完了

3.
recompile.bat実行

4.
updatemd5.bat実行(reobfuscate.batでAPIまで出力されるのを防ぐ)


難読化
ItemElectricTool.class
ur→ItemStack
ItemStack.c→itemID
ItemStack.j()→getItemDamage
ItemStack.l()→copy
up→Item
tw→ItemTool
amq→Block
Block.cB→blockMaterial
Block.cm→blockID
Block.a(World,int,int,int,int,float,int)→dropBlockAsItemWithChance
Block.c(World,int,int,int,int)→onBlockDestroyedByPlayer
Block.d(World,int,int,int,int)→onNeighborBlockChange
Block.m→Block.getBlockHardness
Block.p→Block.blocksList
agi→Material
Material.h()→blocksMovement
lq→Entity
qx→EntityPlayer
Item.a→this.efficiencyOnProperMaterial
Item.a()→getStrVsBlock()
Item.cj→itemID
Item.m()→getMaxDamage()
md hoge→EntityLiving hoge
ke→MathHelper
MathHelper.a(double)→sqrt_double
aoj→Vec3
Vec3.a(double,double,double)→createVectorHelper
Vec3.d(Vec3)→distanceTo
aoh→MovingObjectPosition
MovingObjectPosition.f→hitVec
MovingObjectPosition.g→entityHit
aoe→AxisAlignedBB
lh→DamageSource
lj→EntityDamageSourceIndirect
EntityDamageSourceIndirect.b()→setProjectile
wj.a()→FurnaceRecipes.smelting()
px→EntityItem

Vec3.c→xCoord
Vec3.d→yCoord
Vec3.e→zCoord

Entity.p→worldObj
Entity.q→prevPosX
Entity.r→prevPosY
Entity.s→prevPosZ
Entity.t→posX
Entity.u→posY
Entity.v→posZ
Entity.w→motionX
Entity.x→motionY
Entity.y→motionZ
Entity.z→rotationYaw
Entity.A→rotationPitch
Entity.B→prevRotationYaw
Entity.C→prevRotationPitch
Entity.D→boundingBox

Entity.a()→entityInit
Entity.a(float, float)→setSize
Entity.a(DamageSource,int)→attackEntityFrom
Entity.b(double, double, double)→setPosition
Entity.c(int)→setFire
Entity.e()→getEyeHeight
Entity.j_()→onUpdate?
Entity.x()→kill or setDead
Entity.H()→isInWater
Entity.L()→canBeCollidedWith?
Entity.R()→getShadowSize

Entity.a(NBTTagCompound)
Entity.b(NBTTagCompound)
writeEntityToNBTかreadEntityFromNBT


EntityLiving.e()→getEyeHeight

World.t→rand
World.a(Vec3,Vec3,boolean,boolean)→rayTraceBlocks_do_do
World.b(Entity, AxisAlignedBB)→getEntitiesWithinAABBExcludingEntity
World.d(int,int,int,int,int)→setBlockAndMetadataWithNotify
World.d(Entity)→spawnEntityInWorld
World.e(int,int,int,int)→setBlockWithNotify
World.h(int,int,int)→getBlockMetadata

AxisAlignedBB.a(Vec3,Vec3)→calculateIntercept
AxisAlignedBB.b(double,double,double)→expand

bq→NBTTagCompound
NBTTagCompound.a(String,int)→setInteger
NBTTagCompound.e(String)→getInteger

IC2.platform.isSimulating()→!worldObj.isRemote

【Minecraft】BlazeTorch【1.4.6】

BlazeTorch.png

ブレイズトラップで余ったブレイズロッドの使い道が無かったので、
Forgeの勉強ついでにつくったったったったったー。

ダウンロード
http://www1.axfc.net/uploader/so/2767122
前提
Forge(制作環境は489)

ソースコード

package pio.BlazeTorch;

//This Import list will grow longer with each additional tutorial.
//It's not pruned between full class postings, unlike other tutorial code.
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.FurnaceRecipes;
import net.minecraftforge.common.MinecraftForge;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.Init;
import cpw.mods.fml.common.Mod.Instance;
import cpw.mods.fml.common.Mod.PostInit;
import cpw.mods.fml.common.Mod.PreInit;
import cpw.mods.fml.common.SidedProxy;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.network.NetworkMod;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.LanguageRegistry;


@Mod(modid="BlazeTorch", name="BlazeTorch", version="1.0.0")
@NetworkMod(clientSideRequired=true, serverSideRequired=true) //Since only the recipe change,ssr=true
public class BlazeTorch {

// The instance of your mod that Forge uses.
@Instance("BlazeTorch")
public static BlazeTorch instance;

// Says where the client and server 'proxy' code is loaded.
@SidedProxy(clientSide="pio.BlazeTorch.ClientProxy", serverSide="pio.BlazeTorch.CommonProxy")
public static CommonProxy proxy;

@PreInit
public void preInit(FMLPreInitializationEvent event) {
// Stub Method
}

@Init
public void load(FMLInitializationEvent event) {
proxy.registerRenderers();

ItemStack BlazeRod = new ItemStack( Item.blazeRod );
ItemStack Stick = new ItemStack( Item.stick );
ItemStack TorchStack = new ItemStack( Block.torchWood, 4 );

GameRegistry.addRecipe( TorchStack,
"b",
"s",
'b', BlazeRod, 's', Stick );
}

@PostInit
public void postInit(FMLPostInitializationEvent event) {
// Stub Method
}
}


思わず訴訟したくなるほどの内容の無さ。
これ作るより、本体クライアントで全然読み込まなくて、そっちのほうが難しかった。
どうやら、pioフォルダごとアーカイバに突っ込む必要があったらしい。
Forge難しい。

【Minecraft】プレイ動画編集メモ





最近ゆっくり実況プレイをはじめました。

Minecraftに工業化MOD入れた縛りプレイで、適当においらが好きなネタを詰め込んで編集してます。
ゆっくり実況なので、ゆっくり声入れたり、適当に画像や効果音入れたり、楽しい。
ただ、ミスがないか何度も見なおしたりするので、完成した一分の部分に1時間ぐらい時間かかる。

凝った編集してパート20とか30行ってる人の凄さを再確認した。あの人とかあの人とか。


編集のメモ

Part1
最初にOP作って、
実際に本編の動画を撮影して、編集へ。

編集し始める前に、「今回はワールド作成からダイヤ入手まで」ということを決めておいた。
本編の動画をゆっくりMovieMakerで読み込んで、4倍速で動画再生しつつ、最初の解説をゆっくりにしゃべらせる。
スケスポのところで、解説も終わったので、いろいろネタを入れた。

そのあとは4倍速で動画再生しつつ、鉱石集めてる場面や機械作ってる場面だけ抜き出してカット。

本編の動画のプロジェクトファイルは一つだけ。AviUtlでロードすると数分ぐらいかかった。

OPと本編のプロジェクトファイルを順番に読み込ませたら、動画とゆっくり実況がズレたので、
プロジェクトファイル毎にエンコードして、くっつけた。

動画時間が11分ほどだったので、これから動画の目標時間は10分にした。

Part2
まずは、Part1と同じように、今回の動画の内容を決める。今回は「Part1からIC2機械作成まで」と決めた。

今度は試しに、要所要所でプロジェクトファイルを分ける方式にしてみた。
最初の縛り説明、拠点仮組み、拠点機械設置の3つを分けた。
が、エンコードして、くっつけてみたら、動画時間が7分足らずだった。
目標10分なので、急遽ヘリ探索編を追加してみたりしたけど、結局8分程度になってしまった。
小分けにする際は、最終的な動画時間を意識してないと、時間がめちゃくちゃになるのがわかった。


【Minecraft】戦闘ヘリMOD1.4.5対応作業中

145ヘリ

THX Helicopter が1.4.5に対応したので、早速戦闘ヘリに改良してます。

マルチ化の弊害で、いろいろ不具合が頻発してますが、とりあえずそれなりに動いたものを近い内に公開したいと思います。
最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
プロフィール

ぴお

Author:ぴお
ようこそ

自分のゲーム制作での備忘録や製作記録を書き留めておくブログです。

■やってるサービス
Twitter:piorimumu

Pixiv
http://www.pixiv.net/member.php?id=1126385

Twitter
このページのトップへ