提供: Minecraft Modding Wiki
この編集を取り消せます。
下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 | 編集中の文章 | ||
1行目: | 1行目: | ||
{{前提MOD|reqmod="Minecraft Forge Universal 10.12.0.xxx~"}} | {{前提MOD|reqmod="Minecraft Forge Universal 10.12.0.xxx~"}} | ||
− | + | 作成するソース<br /> | |
− | + | RecipeSample.java<br /> | |
<br /> | <br /> | ||
− | == | + | ==全体の完成形== |
− | |||
<source lang="java"> | <source lang="java"> | ||
package mods.recipesample; | package mods.recipesample; | ||
+ | import cpw.mods.fml.common.IFuelHandler; | ||
import cpw.mods.fml.common.Mod; | import cpw.mods.fml.common.Mod; | ||
import cpw.mods.fml.common.event.FMLInitializationEvent; | import cpw.mods.fml.common.event.FMLInitializationEvent; | ||
18行目: | 18行目: | ||
import net.minecraftforge.oredict.OreDictionary; | import net.minecraftforge.oredict.OreDictionary; | ||
− | @Mod(modid = " | + | @Mod(modid = "kina_tt") |
− | public class | + | public class Tutorial{ |
@Mod.EventHandler | @Mod.EventHandler | ||
public void preInit(FMLPreInitializationEvent event){ | public void preInit(FMLPreInitializationEvent event){ | ||
78行目: | 78行目: | ||
); | ); | ||
+ | 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; | ||
+ | } | ||
+ | }); | ||
} | } | ||
85行目: | 96行目: | ||
} | } | ||
</source> | </source> | ||
− | + | ||
− | + | ==レシピを作る== | |
<source lang="java"> | <source lang="java"> | ||
GameRegistry.addRecipe(new ItemStack(Items.diamond), | GameRegistry.addRecipe(new ItemStack(Items.diamond), | ||
106行目: | 117行目: | ||
</source> | </source> | ||
このように配置が決まっています。<br /> | このように配置が決まっています。<br /> | ||
− | + | 何も入れない部分は半角空白、素材を入れる部分は任意の文字を入れてください。同じ文字は同じパーツと判断されます。<br /> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
空白を入れなかった場合、ワークベンチに収まればそれで作れるようになってしまいます。<br /> | 空白を入れなかった場合、ワークベンチに収まればそれで作れるようになってしまいます。<br /> | ||
− | "XX" | + | "XX"とした場合、 "XX0"または"0XX"というように認識されます。指定は3段でなくても問題ありません。<br /> |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
そのように指定したら、次はその文字がどんなパーツかを指定します。<br /> | そのように指定したら、次はその文字がどんなパーツかを指定します。<br /> | ||
<br /> | <br /> | ||
<source lang="java"> | <source lang="java"> | ||
− | ' | + | 'X',Blocks.dirt }); |
</source> | </source> | ||
− | ' | + | 'X'の部分が指定したパーツの文字、その次が素材になります。<br /> |
ブロックが素材の場合Blocks、置けないアイテムの場合Items、になります。<br /> | ブロックが素材の場合Blocks、置けないアイテムの場合Items、になります。<br /> | ||
そのあとのアイテムの種類は、ゲームでよく呼ばれる名前とは違う場合があります。<br /> | そのあとのアイテムの種類は、ゲームでよく呼ばれる名前とは違う場合があります。<br /> | ||
135行目: | 131行目: | ||
複数素材がある場合は | 複数素材がある場合は | ||
<source lang="java"> | <source lang="java"> | ||
− | GameRegistry.addRecipe(new ItemStack(Items. | + | GameRegistry.addRecipe(new ItemStack(Items.diamond), |
− | " | + | "#", |
− | " | + | "#", |
− | " | + | "#", |
− | ' | + | '#', Blocks.dirt |
− | |||
); | ); | ||
</source> | </source> | ||
150行目: | 145行目: | ||
というように記述します。<br /> | というように記述します。<br /> | ||
<br /> | <br /> | ||
− | + | 例として、石ピッケルのレシピの形を作る場合、こうなります。<br /> | |
<source lang="java"> | <source lang="java"> | ||
− | GameRegistry.addRecipe(new ItemStack( | + | GameRegistry.addRecipe(new ItemStack(Item.pickaxeStone,1), |
− | + | new Object[]{"XXX"," Y "," Y ", | |
− | + | 'X',Block.stone, | |
− | + | 'Y',Item.stick}); | |
− | ); | + | </source> |
− | + | ==不定形レシピを作る== | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
上記のレシピに対して配置は関係ないレシピの作り方です。 | 上記のレシピに対して配置は関係ないレシピの作り方です。 | ||
<source lang="java"> | <source lang="java"> | ||
− | GameRegistry.addShapelessRecipe(new ItemStack( | + | GameRegistry.addShapelessRecipe(new ItemStack(Item.diamond,1), |
− | + | new Object[]{ | |
− | + | new ItemStack(Block.dirt, 1), new ItemStack(Block.sand, 1)}); | |
− | |||
− | ); | ||
</source> | </source> | ||
ここがレシピを指定している部分です。<br /> | ここがレシピを指定している部分です。<br /> | ||
GameRegistry.addShapelessRecipeで不定形レシピを作ることを宣言しています。<br /> | GameRegistry.addShapelessRecipeで不定形レシピを作ることを宣言しています。<br /> | ||
− | + | ここでは、土ブロック(Block.dirt, 1)と砂ブロック(Block.sand, 1)でダイヤ(Item.diamond,1)ができるように書いてあります。 | |
185行目: | 169行目: | ||
追加アイテムがあればそれを作るレシピも作れます。詳しくは[[無機能のアイテムを追加する]]をご覧ください。<br /> | 追加アイテムがあればそれを作るレシピも作れます。詳しくは[[無機能のアイテムを追加する]]をご覧ください。<br /> | ||
− | == | + | ==API例と解説== |
;例)焼き石と木の棒から石ピッケルを作成 | ;例)焼き石と木の棒から石ピッケルを作成 | ||
<source lang="java"> | <source lang="java"> | ||
− | GameRegistry.addRecipe(new ItemStack( | + | GameRegistry.addRecipe(new ItemStack(Item.pickaxeStone,1), |
− | "XXX"," Y "," Y ", | + | new Object[]{"XXX"," Y "," Y ", |
− | 'X', | + | 'X',Block.stone, |
− | 'Y', | + | 'Y',Item.stick}); |
− | ); | ||
</source> | </source> | ||
:*一般的な定型レシピ | :*一般的な定型レシピ | ||
199行目: | 182行目: | ||
;例)赤羊毛と黒羊毛から、茶色羊毛を2個作成 | ;例)赤羊毛と黒羊毛から、茶色羊毛を2個作成 | ||
<source lang="java"> | <source lang="java"> | ||
− | GameRegistry.addShapelessRecipe(new ItemStack( | + | GameRegistry.addShapelessRecipe(new ItemStack(Block.cloth,2,12), |
− | new ItemStack( | + | new Object[]{ |
− | ); | + | new ItemStack(Block.cloth,1,14), new ItemStack(Block.cloth,1,15)}); |
</source> | </source> | ||
;例)木材1つと石炭(木炭)2個から、松明を8つ作成 | ;例)木材1つと石炭(木炭)2個から、松明を8つ作成 | ||
<source lang="java"> | <source lang="java"> | ||
− | GameRegistry.addShapelessRecipe(new ItemStack( | + | GameRegistry.addShapelessRecipe(new ItemStack(Block.torchWood,8), |
− | new ItemStack( | + | new Object[]{ |
− | + | new ItemStack(Item.coal,1,32767), new ItemStack(Item.coal,1,32767), new ItemStack(Block.planks,1,32767)}); | |
− | |||
− | ); | ||
</source> | </source> | ||
:*ダメージ値を指定したレシピを作る場合、ItemStackクラスを使用する。 | :*ダメージ値を指定したレシピを作る場合、ItemStackクラスを使用する。 | ||
:**ItemStack(アイテム名,個数,ダメージ値) ダメージ値は省略可能(省略時は0)、個数は材料指定時には無効。 | :**ItemStack(アイテム名,個数,ダメージ値) ダメージ値は省略可能(省略時は0)、個数は材料指定時には無効。 | ||
:***不定形レシピで同じアイテムを2個以上使いたい場合、個数1で2回指定する必要がある点に注意。 | :***不定形レシピで同じアイテムを2個以上使いたい場合、個数1で2回指定する必要がある点に注意。 | ||
− | :** | + | :**ダメージ値に関わらずレシピに使用する(例えば全ての木材で作成可能にする)には、ダメージ値に「32767」を指定する。 |
:*ダメージ値は、ブロックは0~15、アイテムは0-32000まで設定可能。 | :*ダメージ値は、ブロックは0~15、アイテムは0-32000まで設定可能。 | ||
:**耐久力のあるアイテムの場合、ダメージ値は最大で耐久値までとなる。 | :**耐久力のあるアイテムの場合、ダメージ値は最大で耐久値までとなる。 | ||
221行目: | 202行目: | ||
;例)木の棒のみで、壊れかけの(耐久値の減った)木ピッケルを作成 | ;例)木の棒のみで、壊れかけの(耐久値の減った)木ピッケルを作成 | ||
<source lang="java"> | <source lang="java"> | ||
− | GameRegistry.addRecipe(new ItemStack( | + | GameRegistry.addRecipe(new ItemStack(Item.pickaxeWood,1,32), |
− | "YYY"," Y "," Y ", | + | new Object[]{"YYY"," Y "," Y ", |
− | 'Y', | + | 'Y',Item.stick}); |
</source> | </source> | ||
:*耐久値のあるアイテムは、ダメージを指定すると、その分耐久力が減少して作成される。 | :*耐久値のあるアイテムは、ダメージを指定すると、その分耐久力が減少して作成される。 | ||
229行目: | 210行目: | ||
:**これを応用して、木材から「数回で壊れるハサミ」なども作成することができる | :**これを応用して、木材から「数回で壊れるハサミ」なども作成することができる | ||
− | ; | + | ;例)耐久値の減った石ピッケルと丸石から、新品の石ピッケルを作成 |
<source lang="java"> | <source lang="java"> | ||
− | GameRegistry. | + | GameRegistry.addShapelessRecipe(new ItemStack(Item.pickaxeStone,1), |
− | + | new Object[]{ | |
− | + | new ItemStack(Block.cobblestone,1), new ItemStack(Item.pickaxeStone,1,32767)}); | |
− | |||
− | ); | ||
</source> | </source> | ||
− | :* | + | :*レシピに耐久値の減ったツール類を指定可能にする場合、ダメージを32767に設定する。 |
:**ダメージに1などを指定すると、1回だけ使ったツール、のように耐久値を指定することが可能(意味の有無は別として)。 | :**ダメージに1などを指定すると、1回だけ使ったツール、のように耐久値を指定することが可能(意味の有無は別として)。 | ||
*このソースファイル内で定義しているアイテムやブロックを作成、使用する場合、ttrPickaxe のようにプリフィクス無しで記述する。 | *このソースファイル内で定義しているアイテムやブロックを作成、使用する場合、ttrPickaxe のようにプリフィクス無しで記述する。 | ||
− | * | + | *既存のアイテムや他のファイルで定義されているアイテムやブロックを作成、使用する場合、Item.stick、Block.stone のように、定義しているファイル名(ItemやBlock)をプリフィクスとしてつける(クラスのスコープを正しく指定する)。 |
− | |||
==Tips== | ==Tips== | ||
253行目: | 231行目: | ||
setContainerItem(Item.bucketEmpty); //戻ってくるアイテムを指定 | setContainerItem(Item.bucketEmpty); //戻ってくるアイテムを指定 | ||
</source> | </source> | ||
− | + | ||
[[category:その他]] | [[category:その他]] |