提供: Minecraft Modding Wiki
2012年3月20日 (火) 21:55時点におけるNagisawa (トーク | 投稿記録)による版
移動先: 案内検索

このページは
・ModLoader
・MinecraftForge
を使っていることを前提に書かれています。
また、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はすべてのコメントを歓迎します。匿名で投稿したくない場合は、アカウント作成またはログインしてください。無料です。