提供: Minecraft Modding Wiki
この記事は"ModLoader及びMinecraftForge"を前提MODとしています。 |
また、種子の追加を前提として理解していることとします。
参照先はこちら
ソース解説
mod_operationBonemealクラスを作成
package net.minecraft.src; import java.util.*; import net.minecraft.src.forge.MinecraftForge; public class mod_operationBonemeal { public static int opBonemeal1; public static int opBonemeal2; public static int opBonemeal3; public static int opBonemeal4; public static int opBonemeal5; public static int opBonemeal6; public static int opBonemeal7; public static final Block opBlockCrop; public static final Item opItemCrop; public mod_operationBonemeal() { } public String getVersion() { return "1.2.3"; } public void load() { ModLoader.addName(opBlockCrop, "Op Crop"); opBlockCrop.blockIndexInTexture = ModLoader.addOverride("/terrain/png", "/op/opCrop.png"); ModLoader.addName(opItemCrop, "Op"); opItemCrop.iconIndex = ModLoader.addOverride("/gui/items.png", "/op/op.png"); /* * ここで、骨粉を使う処理を行うクラス名(ハンドラ名)を * MinecraftForge.registerBonemealHandlerで呼び出す */ MinecraftForge.registerBonemealHandler(new OperatinBonemealHandler()); } static { opBonemeal1 = ModLoader.addOverride("terrain.png", "/op/opCrop1.png"); opBonemeal2 = ModLoader.addOverride("terrain.png", "/op/opCrop2.png"); opBonemeal3 = ModLoader.addOverride("terrain.png", "/op/opCrop3.png"); opBonemeal4 = ModLoader.addOverride("terrain.png", "/op/opCrop4.png"); opBonemeal5 = ModLoader.addOverride("terrain.png", "/op/opCrop5.png"); opBonemeal6 = ModLoader.addOverride("terrain.png", "/op/opCrop6.png"); opBonemeal7 = ModLoader.addOverride("terrain.png", "/op/opCrop7.png"); opBlockCrop = new opBlockCrop(100, 0).setBlockName("opCrop"); opItemCrop = new ItemOpCrop(5000, mod_operationBonemeal.opBlockCrop.blockID, Block.dirt.blockID).setBlockName("op"); } }
色々書いていますが、基本は種(Crop)を追加しているだけです。
目玉はこれだけです。
MinecraftForge.registerBonemealHandler(new OperatinBonemealHandler());
OperatinBonemealHandlerクラスを作成
package net.minecraft.src; import net.minecraft.src.forge.IBonemealHandler; public class OperatinBonemealHandler implements IBonemealHandler { @Override public boolean onUseBonemeal(World world, int blockID, int i, int j, int k) { if(!world.isRemote) { /* * 成長させる対象のBlockクラス内にあるfertilizeメソッドを呼び出す。 */ ((BlockOpCrop)mod_operationBonemeal.opBlockCrop).fertilize(world, i, j, k); } return true; } }
MinecraftForgeからIBonemealHandlerをインターフェイスとして繋げて
onUseBonemealメソッドを追加するだけです。
追加した種Blockクラスのメソッドにfertilizeを追加するのを忘れなければ問題ないはずです。
コメントの自動更新を有効化