提供: Minecraft Modding Wiki
ModderKina (トーク | 投稿記録) 細 |
細 |
||
1行目: | 1行目: | ||
+ | {{チュートリアル難易度|difficulty=0}} | ||
+ | ここでは、精錬レシピ、および新しい燃料を追加するMODを作成する。 | ||
=精錬レシピの追加= | =精錬レシピの追加= | ||
− | + | ==ソース== | |
− | == | + | ===TutorialSmelt.java=== |
− | |||
<source lang="java"> | <source lang="java"> | ||
package mods.recipesample; | package mods.recipesample; | ||
43行目: | 44行目: | ||
} | } | ||
</source> | </source> | ||
− | + | ==解説== | |
− | ==精錬レシピを作る== | + | ===精錬レシピを作る=== |
<source lang="java"> | <source lang="java"> | ||
GameRegistry.addSmelting(Items.carrot,new ItemStack(Items.coal),0.1f); | GameRegistry.addSmelting(Items.carrot,new ItemStack(Items.coal),0.1f); | ||
64行目: | 65行目: | ||
**1.0F ダイヤモンド鉱石、エメラルド鉱石、金鉱石 | **1.0F ダイヤモンド鉱石、エメラルド鉱石、金鉱石 | ||
− | =新しい燃料を追加する= | + | ===新しい燃料を追加する=== |
<source lang="java"> | <source lang="java"> | ||
GameRegistry.registerFuelHandler(new IFuelHandler(){ | GameRegistry.registerFuelHandler(new IFuelHandler(){ |
2014年10月6日 (月) 23:11時点における版
ここでは、精錬レシピ、および新しい燃料を追加するMODを作成する。
精錬レシピの追加
ソース
TutorialSmelt.java
package mods.recipesample; import cpw.mods.fml.common.IFuelHandler; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.registry.GameRegistry; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; @Mod(modid = "ttr_smelt") public class TutorialSmelt{ @Mod.EventHandler public void preInit(FMLPreInitializationEvent event){ } @Mod.EventHandler public void init(FMLInitializationEvent event){ GameRegistry.addSmelting(Items.carrot,new ItemStack(Items.coal),0.1f); GameRegistry.registerFuelHandler(new IFuelHandler(){ @Override public int getBurnTime(ItemStack fuel){ if(fuel.getItem().equals(Items.apple)){ return 500; } return 0; } }); } @Mod.EventHandler public void postInit(FMLPostInitializationEvent event){ } }
解説
精錬レシピを作る
GameRegistry.addSmelting(Items.carrot,new ItemStack(Items.coal),0.1f);
- GameRegistry.addSmeltingで、精錬レシピを追加する。
- 第一引数にはBlockかItemを指定する。
- 第二引数には、完成後のアイテムを、ItemStackで指定する。
- 書き方は、 new itemStack(Itemまたはブロック, 作成数, ダメージ値)
- 第二引数以降は特に指定しなくても良い。
- サンプルは、人参を焼くと石炭を1つ出すように指定されています。
- 第三変数もしくは第四変数に経験値オーブの出る確率をfloatで指定します。
- バニラの設定値は以下のようになっています。
- 0.1F 砂、丸石、石炭鉱石
- 0.15F 原木
- 0.2F サボテン、ラピス鉱石
- 0.3F 粘土
- 0.35F 牛肉、豚肉、鶏肉、生魚、ジャガイモ
- 0.7F 鉄鉱石、レッドストーン鉱石
- 1.0F ダイヤモンド鉱石、エメラルド鉱石、金鉱石
新しい燃料を追加する
GameRegistry.registerFuelHandler(new IFuelHandler(){ @Override public int getBurnTime(ItemStack fuel){ if(fuel.getItem().equals(Items.apple)){ return 200; } return 0; } });
- registerFuelHandlerメソッドは、引数に実装したIFuelHandlerを渡すことで利用できる。
- IFuelHandlerのメソッドの引数であるItemStack:fuel には、燃料スロットに入れられたアイテムの種類とメタデータが格納されたItemStackが入る。
- これらを判定し、燃焼効率を返す。
- 200 でアイテム1個分の効率。
- 例えば木の棒や苗木は100(0.5個分)、石炭木炭は1600(8個分)となる。
- 上の例ではりんごで200(1個分)の燃焼効率を返している。