提供: Minecraft Modding Wiki
移動先: 案内検索

警告: ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。ログインまたはアカウントを作成すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。

この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 編集中の文章
1行目: 1行目:
{{前提MOD|reqmod="Minecraft Forge4.3x~"}}
+
{{前提MOD|reqmod="Minecraft Forge4.3x"}}
  
 
==鉱石辞書の利用==
 
==鉱石辞書の利用==
 
<p>
 
<p>
鉱石辞書(OreDictionary)は異なるmod間でのアイテム共有のための機能である。forge前提の大型modでは'''銅'''や'''錫''', '''青銅'''などが鉱石辞書に登録され利用できるようになっている。鉱石辞書という名前ではあるものの、鉱石に限らずあらゆるアイテムを登録できる。鉱石辞書はnet.minecraftforge.oredictパッケージで提供される機能である。<br>
+
 鉱石辞書(OreDictionary)は異なるmod間でのアイテム共有のための機能である. forge前提の大型modでは'''銅'''や'''錫''', '''青銅'''などが鉱石辞書に登録され共有できるようになっている. またこの鉱石辞書は鉱石に限らず, あらゆるアイテムを共有できる. 鉱石辞書は3つのクラスOreDictionary, ShapedOreRecipe, ShapelessOreRecipeから成り, それぞれ'''辞書''', '''定形レシピ''', '''不定形レシピ'''を提供する. なお今回具体的なサンプルコードはない.
対象となるアイテムがそれぞれの環境で存在しなくても落ちることはないため、簡易な連携要素として気軽に利用できる機能である。
 
 
</p>
 
</p>
  
16行目: 15行目:
 
public static void registerOre(String name, Block    ore)
 
public static void registerOre(String name, Block    ore)
 
public static void registerOre(String name, ItemStack ore)
 
public static void registerOre(String name, ItemStack ore)
 +
public static void registerOre(int    id,  Item      ore)
 +
public static void registerOre(int    id,  Block    ore)
 +
public static void registerOre(int    id,  ItemStack ore)
 
</source>
 
</source>
 
<p>
 
<p>
 すなわち、鉱石辞書は'''文字列'''をキーとして共有する機能を提供している。他のmodのBlockやItemへの参照がなくとも、文字列を指定しておけば読み込まれたときに自動で関連付けされる。
+
 すなわち, 鉱石辞書は'''文字列'''か'''ユニークID'''で共有される. 他のmodのBlockやItemへの参照がなくとも, 文字列かユニークIDを指定しておけば読み込まれたときに自動で関連付けされる.
 +
</p>
 +
<source lang = "java">
 +
OreDictionary.registerOre("oreSilver", new ItemStack(blockNewOre, 1, 0));
 +
OreDictionary.registerOre("ingotSilver", new ItemStack(itemNewIngot, 1, 0));
 +
</source>
 +
<p>
 +
 このようにItemStackを用いて登録すればメタデータを利用することで消費IDの抑止にもつながる. 参照の際は文字列だけわかればよいというのも大きなメリットである.
 
</p>
 
</p>
  
 
==鉱石辞書を利用したレシピの追加==
 
==鉱石辞書を利用したレシピの追加==
 
<p>
 
<p>
 鉱石辞書を利用したレシピを追加する場合、'''ShapedOreRecipe'''か'''ShapelessOreRecipe'''を利用する。
+
 鉱石辞書を利用したレシピを追加する場合, 先述した'''ShapedOreRecipe'''か'''ShapelessOreRecipe'''を利用する.
 
</p>
 
</p>
 
<source lang = "java">
 
<source lang = "java">
 
GameRegistry.addRecipe(
 
GameRegistry.addRecipe(
    new ShapedOreRecipe(
+
new ShapedOreRecipe(
        new ItemStack(silvershovel, 1),
+
new ItemStack(silvershovel, 1),
        "X", "Y", "Y",
+
new Object[]
        'X', "ingotSilver",
+
{
        'Y', "stickWood"
+
"X", "Y", "Y",
    )
+
Character.valueOf('X'), "ingotSilver",
);
+
Character.valueOf('Y'), Item.stick
 +
}));
  
 
</source>
 
</source>
 
<p>
 
<p>
 定形レシピの例である。つまりは、今まで直接していた箇所を鉱石辞書で登録した文字列にするだけでできる。
+
 定形レシピの例である. 要は, 今までBlock, Item, ItemStackにしていた箇所を鉱石辞書で登録した文字列にするだけでできる. 注意すべきは'''addRecipe()の引数にnew ShapedOreRecipe()を渡すこと'''である.
 
</p>
 
</p>
  
 
<source lang = "java">
 
<source lang = "java">
 
GameRegistry.addRecipe(
 
GameRegistry.addRecipe(
    new ShapelessOreRecipe(
+
new ShapelessOreRecipe(
        new ItemStack(ingotSilverIron, 1),
+
new ItemStack(ingotSilverIron, 1),
        "ingotSilver", "ingotIron"
+
new Object[]
    )
+
{
);
+
"ingotSilver", Item.ingotIron
 +
}));
 +
 
 
</source>
 
</source>
 
<p>
 
<p>
 不定形レシピの例、基本的には定形レシピと同じ。
+
 不定形レシピの例, 基本的には定形レシピと同じ. 注意点は不定形でも'''addRecipe'''に渡す点. これはGameRegistryのaddRecipeの引数を見れば自明である.
 
</p>
 
</p>
  
 
==鉱石辞書に登録する際のルール==
 
==鉱石辞書に登録する際のルール==
 
<p>
 
<p>
基本的にはプレフィックス+アイテム名と言う形式になっている。鉱石なら'''oreXXX'''、インゴットなら'''ingotXXX'''と言った具合である。プレフィックスで種類を判定しているModも多々あるため、ある程度一般的なアイテムであるならば鉱石辞書に登録するべきである。<br>
+
 現在鉱石辞書を利用しているのはいわゆる工業系mod, すなわちIndustrialCraft2, BulidCraft, RedPower2, Forestry for Minecraftが主流である. 従って後発のmodもこれらの鉱石を共有するために同じ整形ルールで追加, 参照している. わかっている登録名は以下のとおりである.
以下にMinecraftForge(1.11.2-13.20.0.2210現在)によって追加されている鉱石辞書名を挙げる。
+
</p>
 +
*oreTin, oreCopper, oreSilver, oreLead, oreNickel, oreUranium, oreSulfur, oreSaltpeter
 +
*ingotRefinedIron, ingotTin, ingotCopper, ingotSilver, ingotBrass, ingotBronze, ingotLead, ingotNickel, ingotPlatinum, ingotElectrum, ingotInvar
 +
*ingotUranium, ingotRefinedIron
 +
*dyeBlue
 +
*gemRuby, gemEmerald, gemSapphire
 +
*itemDropUranium
 +
*woodRubber
 +
*itemRubber
 +
<p>
 +
 命名則はプレフィックス+アイテム名である. 鉱石なら'''oreXXX''', インゴットなら'''ingotXXX'''となっている. FFMのバックパックやmystcraftの鉱石倍加などもこの命名に従っているアイテムを自動で登録するため, '''forge前提で鉱石を追加する場合は鉱石辞書に登録することが推奨される'''. また6.3.0.363時点で, バニラの一部アイテムが鉱石辞書に登録されレシピを作成しやすくなった. 追加されたのはメタデータを使う原木や木材, 染料などである.
 
</p>
 
</p>
木/材木関係
 
 
*logWood
 
*logWood
 
*plankWood
 
*plankWood
63行目: 84行目:
 
*stairWood
 
*stairWood
 
*stickWood
 
*stickWood
*treeSapling
+
*dyeBlack
*treeLeaves
+
*dyeRed
*vine
+
*dyeGreen
鉱石
+
*dyeBrown
*oreGold
+
*dyeBlue
*oreIron
+
*dyePurple
*oreLapis
+
*dyeCyan
*oreDiamond
+
*dyeLightGray
*oreRedstone
+
*dyeGray
*oreEmerald
+
*dyePink
*oreQuartz
+
*dyeLime
*oreCoal
+
*dyeYellow
インゴット/ナゲット
+
*dyeLightBlue
*ingotIron
+
*dyeMagenta
*ingotGold
+
*dyeOrange
*ingotBrick
+
*dyeWhite
*ingotBrickNether
+
 
*nuggetGold
+
==まとめ==
*nuggetIron
+
<p>
宝石/粉
+
 鉱石辞書は他のmodとのアイテムの共有を実現するAPIである. それ以外にもメタデータを使った煩雑な(可読性の低い)コードを回避する手段としても利用可能である.
*gemDiamond
+
</p>
*gemEmerald
 
*gemQuartz
 
*gemPrismarine
 
*dustPrismarine
 
*dustRedstone
 
*dustGlowstone
 
*gemLapis
 
貯蔵用ブロック
 
*blockGold
 
*blockIron
 
*blockLapis
 
*blockDiamond
 
*blockRedstone
 
*blockEmerald
 
*blockQuartz
 
*blockCoal
 
作物
 
*cropWheat
 
*cropPotato
 
*cropCarrot
 
*cropNetherWart
 
*sugarcane
 
*blockCactus
 
素材
 
*dye
 
*dye{色名}
 
*paper
 
モブのドロップ品
 
*slimeball
 
*enderpearl
 
*bone
 
*gunpowder
 
*string
 
*netherStar
 
*leather
 
*feather
 
*egg
 
レコード
 
*record
 
ブロック
 
*dirt
 
*grass
 
*stone
 
*cobblestone
 
*gravel
 
*sand
 
*sandstone
 
*netherrack
 
*obsidian
 
*glowstone
 
*endstone
 
*torch
 
*workbench
 
*blockSlime
 
*blockPrismarine
 
*blockPrismarineBrick
 
*blockPrismarineDark
 
*stoneGranite
 
*stoneGranitePolished
 
*stoneDiorite
 
*stoneDioritePolished
 
*stoneAndesite
 
*stoneAndesitePolished
 
*blockGlassColorless
 
*blockGlass
 
*blockGlass{色名}
 
*paneGlassColorless
 
*paneGlass
 
*paneGlass{色名}
 
チェスト
 
*chest
 
*chestWood
 
*chestEnder
 
*chestTrapped
 
  
 
==各種MODで登録されるアイテム==
 
==各種MODで登録されるアイテム==

Minecraft Modding Wikiへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細はMinecraft Modding Wiki:著作権を参照)。 著作権保護されている作品は、許諾なしに投稿しないでください!

このページを編集するには、下記の確認用の質問に回答してください (詳細):

取り消し 編集の仕方 (新しいウィンドウで開きます)

このページで使用されているテンプレート: