提供: Minecraft Modding Wiki
(骨粉をItemDyeクラスを編集しなくてもForge機能を使えばこれだけです。) |
細 (種子の追加へのリンクを修正) |
||
1行目: | 1行目: | ||
{{前提MOD|reqmod="ModLoader及びMinecraftForge"}} | {{前提MOD|reqmod="ModLoader及びMinecraftForge"}} | ||
また、種子の追加を前提として理解していることとします。<br/> | また、種子の追加を前提として理解していることとします。<br/> | ||
− | 参照先は[[こちら | + | 参照先は[[種子の追加|こちら]] |
==ソース解説== | ==ソース解説== |
2012年3月22日 (木) 22:49時点における最新版
この記事は"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を追加するのを忘れなければ問題ないはずです。
コメントの自動更新を有効化