この記事は"Minecraft Forge4.3x~"を前提MODとしています。 |
鉱石辞書の利用
鉱石辞書(OreDictionary)は異なるmod間でのアイテム共有のための機能である。forge前提の大型modでは銅や錫, 青銅などが鉱石辞書に登録され利用できるようになっている。鉱石辞書という名前ではあるものの、鉱石に限らずあらゆるアイテムを登録できる。鉱石辞書はnet.minecraftforge.oredictパッケージで提供される機能である。
対象となるアイテムがそれぞれの環境で存在しなくても落ちることはないため、簡易な連携要素として気軽に利用できる機能である。
基本的な使い方
- 鉱石辞書への登録
鉱石辞書への登録はOreDictionaryクラスのregisterOreメソッドを利用する。ItemStackで扱われるため、追加情報を持つItemについても簡単に利用できる。
public static void registerOre(String name, Item ore) public static void registerOre(String name, Block ore) public static void registerOre(String name, ItemStack ore)
すなわち、鉱石辞書は文字列をキーとして共有する機能を提供している。他のmodのBlockやItemへの参照がなくとも、文字列を指定しておけば読み込まれたときに自動で関連付けされる。
鉱石辞書を利用したレシピの追加
鉱石辞書を利用したレシピを追加する場合、ShapedOreRecipeかShapelessOreRecipeを利用する。
GameRegistry.addRecipe( new ShapedOreRecipe( new ItemStack(silvershovel, 1), "X", "Y", "Y", 'X', "ingotSilver", 'Y', "stickWood" ) );
定形レシピの例である。つまりは、今まで直接していた箇所を鉱石辞書で登録した文字列にするだけでできる。
GameRegistry.addRecipe( new ShapelessOreRecipe( new ItemStack(ingotSilverIron, 1), "ingotSilver", "ingotIron" ) );
不定形レシピの例、基本的には定形レシピと同じ。
鉱石辞書に登録する際のルール
基本的にはプレフィックス+アイテム名と言う形式になっている。鉱石ならoreXXX、インゴットならingotXXXと言った具合である。プレフィックスで種類を判定しているModも多々あるため、ある程度一般的なアイテムであるならば鉱石辞書に登録するべきである。
以下にMinecraftForge(1.11.2-13.20.0.2210現在)によって追加されている鉱石辞書名を挙げる。
木/材木関係
- logWood
- plankWood
- slabWood
- stairWood
- stickWood
- treeSapling
- treeLeaves
- vine
鉱石
- oreGold
- oreIron
- oreLapis
- oreDiamond
- oreRedstone
- oreEmerald
- oreQuartz
- oreCoal
インゴット/ナゲット
- ingotIron
- ingotGold
- ingotBrick
- ingotBrickNether
- nuggetGold
- nuggetIron
宝石/粉
- gemDiamond
- 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で登録されるアイテム
Forestry For Minecraftで登録されるアイテム(確認バージョン2.0.0.0)
- oreCopper
- oreTin
- oreApatite
- ingotTin
- ingotCopper
- ingotBronze
- dustAsh
- gearBronze
- gearTin
- gearCopper
- itemPollen
- itemBeeswax
- dropHoneydew
- dropHoney
- dropRoyalJelly
- pulpWood
- brickPeat
IndustrialCraft2で登録されるアイテム(確認バージョン1.112.170)
- oreCopper
- oreTin
- oreUranium
- ingotTin
- ingotBronze
- ingotRefinedIron
- ingotUranium
- ingotCopper
- dustSilver
- dustTin
- dustCoal
- dustBronze
- dustIron
- dustClay
- dustGold
- dustCopper
- dropUranium
- woodRubber
- itemRubber
RailCraftで登録されるアイテム(確認バージョン1.112.170)
- oreSulfur
- oreSaltpeter
- ingotSteel
- nuggetIron
- nuggetSteel
- dustObsidian
- dustSulfur
- dustSaltpeter
- dustCharcoal
- blockSteel
- fuelCoke
Red Power2で登録されるアイテム(確認バージョン2.0pr6)
- oreCopper
- oreGreenSapphire
- oreRuby
- oreTungsten
- oreTin
- oreNikolite
- oreSilver
- oreSapphire
- ingotTin
- ingotSilver
- ingotBrass
- ingotCopper
- nuggetTin
- nuggetSilver
- nuggetIron
- nuggetCopper
- dustNikolite
- gemGreenSapphire
- gemRuby
- gemSapphire
- woodRubber
Thaumcraft3で登録されるアイテム(確認バージョン3.0.2c)
- nuggetTin
- nuggetLead
- nuggetSilver
- nuggetIron
- nuggetCopper
ThermalExpansionで登録されるアイテム(確認バージョン2.2.0)
- oreLead
- oreTin
- oreCopper
- oreSilver
- oreNickel
- ingotNickel
- ingotSilver
- ingotElectrum
- ingotPlatinum
- ingotTin
- ingotLead
- ingotInvar
- ingotCopper
- dustObsidian
- dustTin
- dustElectrum
- dustLead
- dustBrass
- dustPlatinum
- dustNickel
- dustSilver
- dustInvar
- dustBronze
- dustCopper
- dustIron
- dustGold
- gearInvar
- gearTin
- gearCopper