提供: Minecraft Modding Wiki
(ModLoaderを使用しない方法に差し替え) |
|||
(4人の利用者による、間の7版が非表示) | |||
1行目: | 1行目: | ||
− | + | {{前提MOD|reqmod="ModLoader"}} | |
− | + | =精錬レシピの追加= | |
− | + | ここでは、精錬レシピ、および新しい燃料を追加するMODを作成する。 | |
− | == | + | ==ソース全文== |
+ | ;mod_Tutorial.java | ||
<source lang="java"> | <source lang="java"> | ||
package net.minecraft.src; | package net.minecraft.src; | ||
10行目: | 11行目: | ||
public String getVersion() | public String getVersion() | ||
{ | { | ||
− | return "1. | + | return "1.2.3"; |
} | } | ||
+ | |||
public void load() | 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)); | 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; | ||
} | } | ||
} | } | ||
21行目: | 32行目: | ||
==精錬レシピを作る== | ==精錬レシピを作る== | ||
+ | 精錬レシピを指定する方法は、精錬前のアイテムのダメージ値を指定するかどうかで変わります。 | ||
+ | |||
+ | ===精錬前がダメージ値を持たない場合=== | ||
+ | 例えば、普通のアイテムや、どの色の羊毛を精錬してもいいようなレシピの場合。 | ||
<source lang="java"> | <source lang="java"> | ||
− | FurnaceRecipes.smelting().addSmelting(Block. | + | ModLoader.addSmelting(Block.dirt.blockID, new ItemStack(Item.diamond, 1)); |
+ | FurnaceRecipes.smelting().addSmelting(Block.cloth.blockID, new ItemStack(Block.sponge, 1)); | ||
</source> | </source> | ||
− | + | *ModLoader.addSmelting、もしくはFurnaceRecipes.smelting().addSmeltingで、精錬レシピを追加する。 | |
− | + | *第一引数にはBlock.blockID、Item.shiftedIndexを指定する。 | |
− | + | *第二引数には、完成後のアイテムを、ItemStack型で指定する。 | |
− | + | **書き方は、 new itemStack(Item型、またはItemID, 作成数, ダメージ値) | |
− | + | *サンプルは、土を焼くとダイヤモンドを1つ出すように指定されています。 | |
+ | ===精錬前がダメージ値を持つ場合=== | ||
+ | 例えば特定の色の羊毛のみなどを精錬したい場合。 | ||
<source lang="java"> | <source lang="java"> | ||
FurnaceRecipes.smelting().addSmelting(Block.cloth.blockID, 4, new ItemStack(Block.sponge, 1)); | FurnaceRecipes.smelting().addSmelting(Block.cloth.blockID, 4, new ItemStack(Block.sponge, 1)); | ||
</source> | </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"> | ||
+ | ModLoader.addSmelting(Block.dirt.blockID, new ItemStack(Item.diamond, 1), 0.1F); | ||
+ | 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> | ||
+ | *第三変数もしくは第四変数に経験値オーブの出る確率をfloatで指定します。 | ||
+ | *バニラの設定値は以下のようになっています。 | ||
+ | **0.1F 砂、丸石、石炭鉱石 | ||
+ | **0.15F 原木 | ||
+ | **0.2F サボテン、ラピス鉱石 | ||
+ | **0.3F 粘土 | ||
+ | **0.35F 牛肉、豚肉、鶏肉、生魚、ジャガイモ | ||
+ | **0.7F 鉄鉱石、レッドストーン鉱石 | ||
+ | **1.0F ダイヤモンド鉱石、エメラルド鉱石、金鉱石 |
2014年6月26日 (木) 17:17時点における最新版
この記事は"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)); FurnaceRecipes.smelting().addSmelting(Block.cloth.blockID, new ItemStack(Block.sponge, 1));
- ModLoader.addSmelting、もしくはFurnaceRecipes.smelting().addSmeltingで、精錬レシピを追加する。
- 第一引数にはBlock.blockID、Item.shiftedIndexを指定する。
- 第二引数には、完成後のアイテムを、ItemStack型で指定する。
- 書き方は、 new itemStack(Item型、またはItemID, 作成数, ダメージ値)
- サンプルは、土を焼くとダイヤモンドを1つ出すように指定されています。
精錬前がダメージ値を持つ場合[編集]
例えば特定の色の羊毛のみなどを精錬したい場合。
FurnaceRecipes.smelting().addSmelting(Block.cloth.blockID, 4, new ItemStack(Block.sponge, 1));
- FurnaceRecipes.smelting().addSmeltingメソッドで、精錬レシピを追加する。
- 精錬前のアイテムがダメージ値を持つ場合、ModLoaderの機能では設定できません。
- 第一引数には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個分)の燃焼効率を返している。
1.3.x以降の場合[編集]
精錬したものを取り出した時に経験値オーブが出るようになり、それに合わせaddSmeltingの引数が追加されています。 上記のソースをこのように変更すれば良いです。
ModLoader.addSmelting(Block.dirt.blockID, new ItemStack(Item.diamond, 1), 0.1F); 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);
- 第三変数もしくは第四変数に経験値オーブの出る確率をfloatで指定します。
- バニラの設定値は以下のようになっています。
- 0.1F 砂、丸石、石炭鉱石
- 0.15F 原木
- 0.2F サボテン、ラピス鉱石
- 0.3F 粘土
- 0.35F 牛肉、豚肉、鶏肉、生魚、ジャガイモ
- 0.7F 鉄鉱石、レッドストーン鉱石
- 1.0F ダイヤモンド鉱石、エメラルド鉱石、金鉱石