提供: Minecraft Modding Wiki
この編集を取り消せます。
下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 | 編集中の文章 | ||
1行目: | 1行目: | ||
− | {{前提MOD|reqmod=" | + | {{前提MOD|reqmod="ModLoader"}} |
作成するソース<br /> | 作成するソース<br /> | ||
mod_Tutorial.java<br /> | mod_Tutorial.java<br /> | ||
21行目: | 21行目: | ||
作らないのであれば削除してください。 | 作らないのであれば削除してください。 | ||
*/ | */ | ||
− | ModLoader. | + | ModLoader.AddShapelessRecipe(new ItemStack(Item.diamond,1), |
new Object[]{ | new Object[]{ | ||
new ItemStack(Block.dirt, 1), new ItemStack(Block.sand, 1)}); | new ItemStack(Block.dirt, 1), new ItemStack(Block.sand, 1)}); | ||
40行目: | 40行目: | ||
今回の場合 土を縦に3つ並べるとダイヤモンドというアイテムを4個出すというプログラムになっています。<br /> | 今回の場合 土を縦に3つ並べるとダイヤモンドというアイテムを4個出すというプログラムになっています。<br /> | ||
<br /> | <br /> | ||
− | |||
new Object[]{ | new Object[]{ | ||
− | |||
この後の文がレシピの形を決めています。分かりやすく見せると、<br /> | この後の文がレシピの形を決めています。分かりやすく見せると、<br /> | ||
− | + | "000"<br /> | |
− | + | "000"<br /> | |
− | + | "000"<br /> | |
− | |||
− | </ | ||
このように配置が決まっています。<br /> | このように配置が決まっています。<br /> | ||
何も入れない部分は半角空白、素材を入れる部分は任意の文字を入れてください。同じ文字は同じパーツと判断されます。<br /> | 何も入れない部分は半角空白、素材を入れる部分は任意の文字を入れてください。同じ文字は同じパーツと判断されます。<br /> | ||
55行目: | 51行目: | ||
そのように指定したら、次はその文字がどんなパーツかを指定します。<br /> | そのように指定したら、次はその文字がどんなパーツかを指定します。<br /> | ||
<br /> | <br /> | ||
− | |||
Character.valueOf('X'),Block.dirt }); | Character.valueOf('X'),Block.dirt }); | ||
− | |||
valueOfの後の中の文字が指定したパーツの文字、その次が素材になります。<br /> | valueOfの後の中の文字が指定したパーツの文字、その次が素材になります。<br /> | ||
ブロックが素材の場合Block、置けないアイテムの場合Item、になります。<br /> | ブロックが素材の場合Block、置けないアイテムの場合Item、になります。<br /> | ||
64行目: | 58行目: | ||
複数素材がある場合、1つ指定した後に , で区切って次のパーツを指定してください。<br /> | 複数素材がある場合、1つ指定した後に , で区切って次のパーツを指定してください。<br /> | ||
また、ダメージ値(炭、羊毛など)を指定したい場合、<br /><br /> | また、ダメージ値(炭、羊毛など)を指定したい場合、<br /><br /> | ||
− | |||
Character.valueOf('X'),new ItemStack(Item.coal, 1, 0) }); | Character.valueOf('X'),new ItemStack(Item.coal, 1, 0) }); | ||
− | |||
というように記述します。<br /> | というように記述します。<br /> | ||
<br /> | <br /> | ||
75行目: | 67行目: | ||
Character.valueOf('X'),Block.stone,Character.valueOf('Y'),Item.stick}); | Character.valueOf('X'),Block.stone,Character.valueOf('Y'),Item.stick}); | ||
</source> | </source> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==不定形レシピを作る== | ==不定形レシピを作る== | ||
89行目: | 72行目: | ||
<source lang="java"> | <source lang="java"> | ||
− | ModLoader. | + | ModLoader.AddShapelessRecipe(new ItemStack(Item.diamond,1), |
new Object[]{ | new Object[]{ | ||
new ItemStack(Block.dirt, 1), new ItemStack(Block.sand, 1)}); | new ItemStack(Block.dirt, 1), new ItemStack(Block.sand, 1)}); | ||
</source> | </source> | ||
ここがレシピを指定している部分です。<br /> | ここがレシピを指定している部分です。<br /> | ||
− | ModLoader. | + | ModLoader.AddShapelessRecipeで不定形レシピを作ることを宣言しています。<br /> |
− | ここでは、土ブロック(Block.dirt, 1)と砂ブロック(Block.sand, 1) | + | ここでは、土ブロック(Block.dirt, 1)と砂ブロック(Block.sand, 1)で(Item.diamond,1)ができるように書いてあります。 |
123行目: | 106行目: | ||
new ItemStack(Item.coal,1,-1), new ItemStack(Item.coal,1,-1), new ItemStack(Block.planks,1,-1)}); | new ItemStack(Item.coal,1,-1), new ItemStack(Item.coal,1,-1), new ItemStack(Block.planks,1,-1)}); | ||
</source> | </source> | ||
− | :* | + | :*ダメージ値を指定したレシピを作る場合、ItemStack関数を使用する。 |
:**ItemStack(アイテム名,個数,ダメージ値) ダメージ値は省略可能(省略時は0)、個数は材料指定時には無効。 | :**ItemStack(アイテム名,個数,ダメージ値) ダメージ値は省略可能(省略時は0)、個数は材料指定時には無効。 | ||
− | |||
:**ダメージ値に関わらずレシピに使用する(例えば全ての木材で作成可能にする)には、ダメージ値に「-1」を指定する。 | :**ダメージ値に関わらずレシピに使用する(例えば全ての木材で作成可能にする)には、ダメージ値に「-1」を指定する。 | ||
:*ダメージ値は、ブロックは0~15、アイテムは0-32000まで設定可能。 | :*ダメージ値は、ブロックは0~15、アイテムは0-32000まで設定可能。 | ||
142行目: | 124行目: | ||
− | ; | + | ;例)石ピッケルを黒曜石8個で囲み、耐久値無限の石ピッケルを作成 |
<source lang="java"> | <source lang="java"> | ||
− | ModLoader.addRecipe(new ItemStack(Item.pickaxeStone,1,- | + | ModLoader.addRecipe(new ItemStack(Item.pickaxeStone,1,-1), |
new Object[]{"XXX","XYX","XXX", | new Object[]{"XXX","XYX","XXX", | ||
Character.valueOf('X'),Block.obsidian,Character.valueOf('Y'),Item.pickaxeStone}); | Character.valueOf('X'),Block.obsidian,Character.valueOf('Y'),Item.pickaxeStone}); | ||
</source> | </source> | ||
− | :* | + | :*耐久値のあるアイテムをダメージ-1で作成すると、耐久値が無限になる。 |
− | |||
:**ただし防具は無限にならない(マイナスした分、ダメージを相殺する=耐久力が増える)。 | :**ただし防具は無限にならない(マイナスした分、ダメージを相殺する=耐久力が増える)。 | ||
− | |||
162行目: | 142行目: | ||
:*レシピに耐久値の減ったツール類を指定可能にする場合、ダメージを-1に設定する。 | :*レシピに耐久値の減ったツール類を指定可能にする場合、ダメージを-1に設定する。 | ||
:**ダメージに1などを指定すると、1回だけ使ったツール、のように耐久値を指定することが可能(意味の有無は別として)。 | :**ダメージに1などを指定すると、1回だけ使ったツール、のように耐久値を指定することが可能(意味の有無は別として)。 | ||
− | |||
− | * | + | *このソースファイルで定義しているアイテムやブロックを作成、使用する場合、ttrPickaxe のようにプリフィクス無しで記述する。 |
*既存のアイテムや他のファイルで定義されているアイテムやブロックを作成、使用する場合、Item.stick、Block.stone のように、定義しているファイル名(ItemやBlock)をプリフィクスとしてつける(クラスのスコープを正しく指定する)。 | *既存のアイテムや他のファイルで定義されているアイテムやブロックを作成、使用する場合、Item.stick、Block.stone のように、定義しているファイル名(ItemやBlock)をプリフィクスとしてつける(クラスのスコープを正しく指定する)。 | ||
176行目: | 155行目: | ||
setContainerItem(Item.bucketEmpty); //戻ってくるアイテムを指定 | setContainerItem(Item.bucketEmpty); //戻ってくるアイテムを指定 | ||
</source> | </source> | ||
− | |||
− |