提供: Minecraft Modding Wiki
この編集を取り消せます。
下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 | 編集中の文章 | ||
38行目: | 38行目: | ||
− | /* | + | /** |
− | + | * modid = このMODのIDです。他のMODと重複しない名前を心がけましょう | |
− | + | * name = このMODの名前です。好きな名前をつけよう | |
− | + | * version = これも任意でOK | |
− | + | * dependencies = このMODが要求する・要求はしないが読み込み順を調整したいMODを記入します。 | |
− | + | * "required"と入れると、そのMOD(ここでは9.10.~以降のForge、6.2.~以降のFML)が未導入だとクラッシュします。 | |
− | + | * "after"はこのMODより後に読み込むことを意味します。連携先よりタイミングを遅らせたい場合に使用します。*/ | |
@Mod( | @Mod( | ||
modid = "UseOreDicSample", | modid = "UseOreDicSample", | ||
54行目: | 54行目: | ||
public class UseOreDicSample { | public class UseOreDicSample { | ||
− | /*鉱石辞書から手に入れるアイテムの宣言です*/ | + | /**鉱石辞書から手に入れるアイテムの宣言です*/ |
public static ItemStack tinFromOreDic; | public static ItemStack tinFromOreDic; | ||
− | /*鉱石辞書から手に入れるアイテムの宣言です。 | + | /**鉱石辞書から手に入れるアイテムの宣言です。 |
− | + | * こちらはArrayListの形で取得しています。*/ | |
public static ArrayList<ItemStack> listAllCoppers = new ArrayList<ItemStack>(); | public static ArrayList<ItemStack> listAllCoppers = new ArrayList<ItemStack>(); | ||
− | /*FMLのGameRegistry.findItemを利用して取得するアイテムです*/ | + | /**FMLのGameRegistry.findItemを利用して取得するアイテムです*/ |
public static ItemStack bronzeFromFML; | public static ItemStack bronzeFromFML; | ||
67行目: | 67行目: | ||
public void preInit(FMLPreInitializationEvent event) | public void preInit(FMLPreInitializationEvent event) | ||
{ | { | ||
− | /*鉱石辞書への登録です。 | + | /**鉱石辞書への登録です。 |
− | + | * preInitで登録していますが、他のタイミングでも登録自体は可能です。 | |
− | + | * ただし、自分がレシピに使いたいタイミングよりは先にしましょう。 | |
− | + | * また、自作アイテムを登録したい場合は、自作アイテムの登録(Gameregistry.registerItem等)の後にします。*/ | |
OreDictionary.registerOre("ingotIron", new ItemStack(Item.ingotIron, 1, 0)); | OreDictionary.registerOre("ingotIron", new ItemStack(Item.ingotIron, 1, 0)); | ||
} | } | ||
77行目: | 77行目: | ||
public void init(FMLInitializationEvent event) throws IOException | public void init(FMLInitializationEvent event) throws IOException | ||
{ | { | ||
− | /*さっき登録したOreDictionaryを使用したレシピを登録します。*/ | + | /**さっき登録したOreDictionaryを使用したレシピを登録します。*/ |
GameRegistry.addRecipe( | GameRegistry.addRecipe( | ||
new ShapedOreRecipe( | new ShapedOreRecipe( | ||
97行目: | 97行目: | ||
public void postInit(FMLPostInitializationEvent event) | public void postInit(FMLPostInitializationEvent event) | ||
{ | { | ||
− | /*その1:アイテム1つをOreDictionaryから取得する。 | + | /**その1:アイテム1つをOreDictionaryから取得する。 |
− | + | * この方法では、リストの先頭にあるアイテムを取得するので、どのMODのスズインゴットかは判別していない*/ | |
− | /*Oredictionary.getOres(String)は、鉱石辞書名から登録済みアイテムのリストを取得するメソッド*/ | + | /**Oredictionary.getOres(String)は、鉱石辞書名から登録済みアイテムのリストを取得するメソッド*/ |
ArrayList<ItemStack> tin = OreDictionary.getOres("ingotTin"); | ArrayList<ItemStack> tin = OreDictionary.getOres("ingotTin"); | ||
− | /*取得したArrayListが空でなければ、リスト先頭(0番目)のアイテムを取得する。*/ | + | /**取得したArrayListが空でなければ、リスト先頭(0番目)のアイテムを取得する。*/ |
if (tin.size() > 0) | if (tin.size() > 0) | ||
{ | { | ||
109行目: | 109行目: | ||
} | } | ||
− | /*スズインゴットの取得に成功した場合のみ実行される*/ | + | /**スズインゴットの取得に成功した場合のみ実行される*/ |
if (this.tinFromOreDic != null) | if (this.tinFromOreDic != null) | ||
{ | { | ||
121行目: | 121行目: | ||
} | } | ||
− | /*その2:アイテムをArrayListの形で取得する。 | + | /**その2:アイテムをArrayListの形で取得する。 |
− | + | * やっていることは、その1と実質的に変わっていない*/ | |
this.listAllCoppers = OreDictionary.getOres("ingotCopper"); | this.listAllCoppers = OreDictionary.getOres("ingotCopper"); | ||
− | /*その3:鉱石辞書の利用ではないが、FMLのGameRegistry.findItemを使用した他MODのアイテム取得方法。 | + | /**その3:鉱石辞書の利用ではないが、FMLのGameRegistry.findItemを使用した他MODのアイテム取得方法。 |
− | + | * ここでは、一例として架空のMODのアイテムを取得しています。 | |
− | + | * 実際に使用する時は、使わせてもらいたいMODのID、アイテム登録名を調べて使いましょう。*/ | |
− | /*注意として、ココで使用するアイテム名はunlocalizedNameや表示名ではなく、 | + | /**注意として、ココで使用するアイテム名はunlocalizedNameや表示名ではなく、 |
− | + | * GameRegistry.registerItem(par1, par2)で登録した時の名前でなくてはいけません。 | |
− | + | * 従って、RML利用MODなど、FML式の登録を行っていないMODのアイテムはこの方法では取得できません。 | |
− | + | * また、Itemを取得するので、そのアイテムのメタデータは別途調べておく必要があります。*/ | |
− | /*まずは、"hogehoge"というmodidのMODが読み込まれているかをチェック*/ | + | /**まずは、"hogehoge"というmodidのMODが読み込まれているかをチェック*/ |
if (Loader.isModLoaded("hogehoge")) | if (Loader.isModLoaded("hogehoge")) | ||
{ | { | ||
Item ret = GameRegistry.findItem("hogehoge", "hogeItem"); | Item ret = GameRegistry.findItem("hogehoge", "hogeItem"); | ||
− | /*取得したアイテム(ret)が空でなかった場合、実行されます。*/ | + | /**取得したアイテム(ret)が空でなかった場合、実行されます。*/ |
if (ret != null) { | if (ret != null) { | ||
163行目: | 163行目: | ||
− | /*別のクラスから、何らかのアイテムが銅インゴットとして鉱石辞書登録済みかを判定するためのメソッド | + | /**別のクラスから、何らかのアイテムが銅インゴットとして鉱石辞書登録済みかを判定するためのメソッド |
− | + | * "ingotCopper"の登録リスト(うえのほうで取得したもの)に登録されていれば、trueが返ってくる*/ | |
public static boolean isCopper(ItemStack itemstack) | public static boolean isCopper(ItemStack itemstack) | ||
{ | { | ||
172行目: | 172行目: | ||
} | } | ||
− | /* | + | /** |
− | + | * for文を回して、リストを順にチェックしている。 | |
− | + | * isCopperメソッドでの判定に使う。 | |
− | + | */ | |
private static boolean matchItems(ArrayList<ItemStack> list, ItemStack items) | private static boolean matchItems(ArrayList<ItemStack> list, ItemStack items) | ||
{ | { | ||
189行目: | 189行目: | ||
} | } | ||
− | /*あるアイテムに対して、鉱石辞書登録された名前を取得するメソッド。 | + | /**あるアイテムに対して、鉱石辞書登録された名前を取得するメソッド。 |
− | + | * 注意として、この方法で取得できる鉱石辞書名は1つだけである点に注意。 | |
− | + | * (複数の名前で登録されているアイテムの場合、NEIで確認した際に白字で表示される1つのみが有効。)*/ | |
public static boolean isThisIngotSteel(ItemStack itemstack) | public static boolean isThisIngotSteel(ItemStack itemstack) | ||
{ | { | ||
boolean flag = false; | boolean flag = false; | ||
− | /*まずはitemstackの登録辞書名を取得 | + | /**まずはitemstackの登録辞書名を取得 |
− | + | * 未登録の場合、thisNameには"Unknown"という文字列が返される*/ | |
String thisName = OreDictionary.getOreName(OreDictionary.getOreID(itemstack)); | String thisName = OreDictionary.getOreName(OreDictionary.getOreID(itemstack)); | ||
− | /*取得した文字列が、"ingotSteel"に一致するか*/ | + | /**取得した文字列が、"ingotSteel"に一致するか*/ |
flag = thisName.equalsIgnoreCase("ingotSteel"); | flag = thisName.equalsIgnoreCase("ingotSteel"); | ||