提供: Minecraft Modding Wiki
この記事は"ModLoader"を前提MODとしています。 |
精錬レシピの追加
ここでは、精錬レシピ、および新しい燃料を追加するMODを作成する。
ソース全文
- mod_Tutorial.java
package net.minecraft.src; public class mod_Tutorial extends BaseMod { public String getVersion() { return "1.2.3"; } public void load() { ModLoader.addSmelting(Block.dirt.blockID, new ItemStack(Item.diamond, 1)); FurnaceRecipes.smelting().addSmelting(Block.cloth.blockID, 4, new ItemStack(Block.sponge, 1)); } public int addFuel(int id, int metadata) { if(id >= 268 && id <= 271 || id == 290) { return 200; } return 0; } }
精錬レシピを作る
精錬レシピを指定する方法は、精錬前のアイテムのダメージ値を指定するかどうかで変わります。
精錬前がダメージ値を持たない場合
例えば、普通のアイテムや、どの色の羊毛を精錬してもいいようなレシピの場合。
ModLoader.addSmelting(Block.dirt.blockID, new ItemStack(Item.diamond, 1));
- ModLoader.addSmeltingメソッドで、精錬レシピを追加する。
- 第一引数にはBlock.blockID、Item.shiftedIndexを指定する。
- 第二引数には、完成後のアイテムを、ItemStack型で指定する。
- 書き方は、 new itemStack(Item型、またはItemID, 作成数, ダメージ値)
- サンプルは、土を焼くとダイヤモンドを1つ出すように指定されています。
精錬前がダメージ値を持つ場合
例えば特定の色の羊毛のみなどを精錬したい場合。
FurnaceRecipes.smelting().addSmelting(Block.cloth.blockID, 4, new ItemStack(Block.sponge, 1));
- 精錬前のアイテムがダメージ値を持つ場合、ModLoaderの機能では設定できません。
- 精錬前のアイテムのダメージ値を指定したい場合は、Minecraft標準のクラスにアクセスします。
- FurnaceRecipes.smelting().addSmeltingメソッドで、精錬レシピを追加できます。
- 第一引数にはBlock.blockID、Item.shiftedIndexを指定する。
- 第二引数には、精錬前のアイテムのダメージ値を指定します。
- 第三引数には、完成後のアイテムを、ItemStack型で指定する。
- 書き方は、 new itemStack(Item型、またはItemID, 作成数, ダメージ値)
- サンプルは、黄色い羊毛を焼くとスポンジを1つ出すように指定されています。
新しい燃料を追加する
mod_Tutorial に addFuel メソッドを追加する事で、燃料の設定を追加できる。
public int addFuel(int id, int metadata) { if(id >= 268 && id <= 271 || id == 290) { return 200; } return 0; }
- addFuelメソッドは、かまどで精錬が開始される時に呼ばれる。
- id には、燃料スロットに入れられたアイテムのIDが入る。
- metadeta には、燃料スロットに入れられたアイテムのダメージ値が入る。
- これらの値を判定し、燃焼効率を返す。
- 200 でアイテム1個分の効率。
- 例えば木の棒や苗木は100(0.5個分)、石炭木炭は1600(8個分)となる。
- 上の例では木製のツール(斧、つるはし、ショベル、クワ、剣)で200(1個分)の燃焼効率を返している。