最新版 |
編集中の文章 |
1行目: |
1行目: |
| {{前提MOD|reqmod="ModLoader"}} | | {{前提MOD|reqmod="ModLoader"}} |
− | =精錬レシピの追加=
| + | 作成するソース<br /> |
− | ここでは、精錬レシピ、および新しい燃料を追加するMODを作成する。
| + | mod_Tutorial.java<br /> |
− | ==ソース全文== | + | <br /> |
− | ;mod_Tutorial.java
| + | ==全体の完成形== |
| <source lang="java"> | | <source lang="java"> |
− | package net.minecraft.src; | + | package net.minecraft.src; |
| | | |
− | public class mod_Tutorial extends BaseMod | + | public class mod_Tutorial extends BaseMod { |
− | {
| + | |
− | public String getVersion() | + | public String getVersion() { |
− | {
| + | return "1.0.0"; |
− | return "1.2.3";
| + | } |
− | } | + | public void load() { |
| | | |
− | public void load()
| + | ModLoader.AddSmelting(Block.dirt.blockID, new ItemStack(Item.diamond, 1)); |
− | {
| |
− | 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;
| |
− | } | |
− | } | |
| </source> | | </source> |
| | | |
| ==精錬レシピを作る== | | ==精錬レシピを作る== |
− | 精錬レシピを指定する方法は、精錬前のアイテムのダメージ値を指定するかどうかで変わります。
| |
− |
| |
− | ===精錬前がダメージ値を持たない場合===
| |
− | 例えば、普通のアイテムや、どの色の羊毛を精錬してもいいようなレシピの場合。
| |
− | <source lang="java">
| |
− | ModLoader.addSmelting(Block.dirt.blockID, new ItemStack(Item.diamond, 1));
| |
− | FurnaceRecipes.smelting().addSmelting(Block.cloth.blockID, new ItemStack(Block.sponge, 1));
| |
− | </source>
| |
− | *ModLoader.addSmelting、もしくはFurnaceRecipes.smelting().addSmeltingで、精錬レシピを追加する。
| |
− | *第一引数にはBlock.blockID、Item.shiftedIndexを指定する。
| |
− | *第二引数には、完成後のアイテムを、ItemStack型で指定する。
| |
− | **書き方は、 new itemStack(Item型、またはItemID, 作成数, ダメージ値)
| |
− | *サンプルは、土を焼くとダイヤモンドを1つ出すように指定されています。
| |
− |
| |
− | ===精錬前がダメージ値を持つ場合===
| |
− | 例えば特定の色の羊毛のみなどを精錬したい場合。
| |
− | <source lang="java">
| |
− | FurnaceRecipes.smelting().addSmelting(Block.cloth.blockID, 4, new ItemStack(Block.sponge, 1));
| |
− | </source>
| |
− | *FurnaceRecipes.smelting().addSmeltingメソッドで、精錬レシピを追加する。
| |
− | **精錬前のアイテムがダメージ値を持つ場合、ModLoaderの機能では設定できません。
| |
− | *第一引数にはBlock.blockID、Item.shiftedIndexを指定する。
| |
− | *第二引数には、精錬前のアイテムのダメージ値を指定する。
| |
− | *第三引数には、完成後のアイテムを、ItemStack型で指定する。
| |
− | **書き方は、 new itemStack(Item型、またはItemID, 作成数, ダメージ値)
| |
− | *サンプルは、黄色い羊毛を焼くとスポンジを1つ出すように指定されています。
| |
− |
| |
− | =新しい燃料を追加する=
| |
− | mod_Tutorial に addFuel メソッドを追加する事で、燃料の設定を追加できる。
| |
− | <source lang="java">
| |
− | public int addFuel(int id, int metadata)
| |
− | {
| |
− | if(id >= 268 && id <= 271 || id == 290)
| |
− | {
| |
− | return 200;
| |
− | }
| |
− | return 0;
| |
− | }
| |
− | </source>
| |
− | *addFuelメソッドは、かまどで精錬が開始される時に呼ばれる。
| |
− | **id には、燃料スロットに入れられたアイテムのIDが入る。
| |
− | **metadeta には、燃料スロットに入れられたアイテムのダメージ値が入る。
| |
− | *これらの値を判定し、燃焼効率を返す。
| |
− | **200 でアイテム1個分の効率。
| |
− | **例えば木の棒や苗木は100(0.5個分)、石炭木炭は1600(8個分)となる。
| |
− | *上の例では木製のツール(斧、つるはし、ショベル、クワ、剣)で200(1個分)の燃焼効率を返している。
| |
− |
| |
− | =1.3.x以降の場合=
| |
− | 精錬したものを取り出した時に経験値オーブが出るようになり、それに合わせaddSmeltingの引数が追加されています。
| |
− | 上記のソースをこのように変更すれば良いです。
| |
| <source lang="java"> | | <source lang="java"> |
− | ModLoader.addSmelting(Block.dirt.blockID, new ItemStack(Item.diamond, 1), 0.1F); | + | ModLoader.AddSmelting(Block.dirt.blockID, new ItemStack(Item.diamond, 1)); |
− | FurnaceRecipes.smelting().addSmelting(Block.cloth.blockID, new ItemStack(Block.sponge, 1), 0.1F);
| |
− | FurnaceRecipes.smelting().addSmelting(Block.cloth.blockID, 4, new ItemStack(Block.sponge, 1), 0.1F);
| |
| </source> | | </source> |
− | *第三変数もしくは第四変数に経験値オーブの出る確率をfloatで指定します。
| + | レシピを指定してる部分はこの部分です。<br /> |
− | *バニラの設定値は以下のようになっています。
| + | ModLoader.AddSmeltingで精錬レシピを作ることを宣言しています。<br /> |
− | **0.1F 砂、丸石、石炭鉱石
| + | (new itemStack(追加アイテム名,一度に作れる数))となっています。<br /> |
− | **0.15F 原木
| + | 今回の場合 土を焼くとダイヤモンドというアイテムを1個出すというプログラムになっています。<br /> |
− | **0.2F サボテン、ラピス鉱石
| + | <br /> |
− | **0.3F 粘土
| + | 注意:"焼きたいもの"はint型の引数なのでブロックの場合は末尾に.blockIDを、アイテムの場合は.shiftedIndexをつけます。 |
− | **0.35F 牛肉、豚肉、鶏肉、生魚、ジャガイモ
| |
− | **0.7F 鉄鉱石、レッドストーン鉱石
| |
− | **1.0F ダイヤモンド鉱石、エメラルド鉱石、金鉱石
| |