提供: Minecraft Modding Wiki
このページは
・ModLoader
・MinecraftForge
を使っていることを前提に書かれています。
MLPropを使う場合は、ModLoaderAPIに記載してありますのでそちらを確認ください。
作成するクラス
mod_hoge
ソース解説
mod_hogeクラス作成
package net.minecraft.src; import java.io.File; import java.util.*; import net.minecraft.client.Minecraft; import net.minecraft.src.forge.*; public class mod_hoge extends BaseMod { static Configuration configuration; static Block hogeBlock; static int hogeBlockID; static Item hogeItem; static int itemHogeShiftedIndex; public mod_hoge() { } public void load() { /* * configurationファイルを設定します。 * FileメソッドでMinecraftのconfig/hoge/cfgファイルを参照することを定義しています。 */ configuration = new Configuration(new File(Minecraft.getMinecraftDir(), "config/hoge.cfg")); /* * BlockIDはconfigurationProperties();でコンフィグファイルから取って来いという宣言です。 */ hogeBlockID = configurationProperties(); hogeBlock = new Block(hogeBlockID, ModLoader.addOverride("/terrain.png", "/block/hogeBlock.png")); /* * ItemIDはBlockIDのMAX値256から減算した値がItemIDになるので-256をしています。 */ hogeItem = new Item(itemHogeShiftedIndex - 256, "/gui/items.png", "/item/hogeItem.png").setItemName("hogeItem"); ModLoader.RegisterBlock(hogeBlock); ModLoader.AddName(hogeBlock, "Hoge Block"); ModLoader.AddName(hogeItem, "Hoge Item"); } public String getVersion() { return "1.0.0"; } private int configurationProperties() { /* * configuration.load()でコンフィグファイルをロードします。 * 2行目でコンフィグファイルで定義されているBlockIDを設定します。 * getOrCreateBlockIdPropertyで対象ブロックに設定するものを定義します。 * 数字123は初期定義値です。 * 3行目のgetOrCreateIntPropertyでは、前の行のgetOrCreateBlockIdPropertyの項目を使用しています。 * 数字の5000はhogeItemの初期ItemID(実際のデータは+256)です。 * configuration.save();でコンフィングファイルをセーブします。(よく忘れます。必ずセーブしましょう) * 最後に最初のBlockIDを返す必要があります。 */ configuration.load(); hogeBlockID = Integer.parseInt(configuration.getOrCreateBlockIdProperty("Hoge Block", 123).value); itemHogeShiftedIndex = Integer.parseInt(configuration.getOrCreateIntProperty("Hoge Item", Configuration.ITEM_PROPERTY, 5000).value); configuration.save(); return hogeBlockID; } }
ざっとソースに説明文を書きましたが、MLPropかForgeでのConfigファイル生成かは
タイプが分かれると思います。
今回はBlockID、ItemIDを設定させていますが、
EntityIDや対象Blockの生成有無の判定にも使えますので、好きな方をお使いください。
コメントの自動更新を有効化