提供: Minecraft Modding Wiki
2012年3月22日 (木) 21:31時点におけるSino ku (トーク | 投稿記録)による版 ((テンプレ挿入により改行の位置が中途半端でしたので少し変えました))
移動先: 案内検索

この記事は"ModLoader及びMinecraftForge"を前提MODとしています。

また、1.23からUpdateで1.24が来た場合BlockID,ItemIDの書き方に変更があるかもしれないので、1.1を基準に記述してます。
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の生成有無の判定にも使えますので、好きな方をお使いください。


自分のコメントを追加
Minecraft Modding Wikiはすべてのコメントを歓迎します。匿名で投稿したくない場合は、アカウント作成またはログインしてください。無料です。