提供: Minecraft Modding Wiki
移動先: 案内検索

この記事は"ModLoader 1.2.3以降"を前提MODとしています。

作成するファイル
mod_Tutorial.java mod本体のソース
ttritem.png 追加アイテムのテクスチャ画像

mod_Tutorial.javaの内容[編集]

package net.minecraft.src;
 
 public class mod_Tutorial extends BaseMod {
 
    public String getVersion() {
       return "1.0.0";
    }
 
    public static Item ttrItem;
    @MLProp(info="ttrItemID", min = 4096, max = 32000)
    public static int ttrItemID = 5000;
 
    public void load() {
 
       ttrItem = new Item(ttrItemID-256).setItemName("ttrItem");
       ttrItem.iconIndex = ModLoader.addOverride("/gui/items.png", "/ttr/ttritem.png");
       ModLoader.addName(ttrItem, "Tutorial Item");
       ModLoader.addRecipe(new ItemStack(ttrItem, 4),
                           new Object[]{ "X","X",
                           Character.valueOf('X'),Block.dirt });
    }
 }


解説[編集]

パッケージ、クラス設定、バージョン設定[編集]

package net.minecraft.src;
  • ここでパッケージを読み込みます。必ず必要になります。


public class mod_Tutorial extends BaseMod {
  • ModLoaderのクラス BaseMod を継承したクラスを作ります。mod_の後の部分はmod名で、ファイル名と同じにします。


public String getVersion() {
   return "1.0.0";
 }
  • MODのバージョンをModLoaderに渡しています。
    • 中の文字列Minecraftのバージョンではなく、modのバージョンです。適当でも構いません。
    • modリスト一覧でのバージョン表記などで表示されます。


アイテムを追加する[編集]

public static Item ttrItem;
  • ここで Itemクラスの新規アイテム "ttrItem" のフィールドを用意しています。


public void load() {
  • ModLoaderにmodが読み込まれた際に実行される部分です。必ず追加する必要があります。


@MLProp(info="assign an ItemID", min = 4096, max = 32000)
 public static int ttrItemID = 5000;
 
 ttrItem = new Item(ttrItemID-256).setItemName("ttrItem");
例2)
ttrItem = new Item(ttrItemID-256).setItemName("ttrItem").setIconCoord(0, 0);
  • ttrItemID でアイテムのIDを設定し、その前の @MLProp でcfgファイルから変更可能にしています。
    • アイテムIDなので、設定範囲を4096-32000にしています。
      • ID 256-4095はブロックで使われる可能性があります。アイテムIDは4096以上が望ましいです。
    • cfgファイルについての詳細は、設定ファイル作成方法を参照して下さい。
    • IDで記述するのはデフォルトIDになります。数字は任意に変更してください(競合注意)。
      • ID被りによる競合は常に発生しうるものなので、IDは極力、設定ファイルで変更可能にしましょう。
  • 最後の文でアイテム"ttrItem"にIDと名前を渡しています。
    • Item(ttrItemID-256) がアイテムIDを設定している部分です。
    • アイテムを追加する場合、実際に登録されるIDは指定した数値の+256になるため、設定ファイルの数字をそのまま反映できるように、-256して登録しています。
  • 次に、setItemName("ttrItem") でアイテムに名前を設定しています。
    • ここで入れてる名前は画面上に表示される名前ではなく、ゲーム内でアイテムの判別に利用される名前です。
    • 既存のアイテムやMODの追加アイテムと被ると、問題が発生します。決して被らない名前を付けるようにして下さい。
  • 例2)のように指定すると、既存のテクスチャ(gui/items.png)を使用できます。
    • .setIconCoord(横座標, 縦座標) で指定します。0,0 なら皮のヘルメット、5,3 なら木の棒になります。
  • .setMaxStackSize(1)を追加することで、スタックサイズを1にできます。未指定時のスタックサイズは64になります。


ttrItem.iconIndex = ModLoader.addOverride("/gui/items.png", "/ttritem.png");
  • アイテムttrItemにModLoaderの機能でテクスチャを上書きしています。用意していたttritem.pngが反映されます。
    • 画像が見つからない場合、エラーが出ます。
    • MCPを使っている場合、画像を入れるのは eclipse/client/bin/ のnetフォルダと同じところに置きます。
    • フォルダで画像をまとめたい場合、指定を"/フォルダ名/画像名"というようにします。


ModLoader.addName(ttrItem, "Tutorial Item");
  • ここではアイテムのゲーム内で表示する名前を設定しています。
    • addName(アイテム名,"表示したい名前") と記述します。
  • 以下のようにすると、各言語設定に対応した名前を設定できます。
    • 注意:2バイト文字(日本語など)を使う場合は、ファイルをUTF-8で保存してください。
ModLoader.addName(ttrItem, "Tutorial Item");
 ModLoader.addName(ttrItem, "ja_JP", "チュートリアルアイテム");


レシピを設定する[編集]

ModLoader.addRecipe(new ItemStack(ttrItem, 4), 
                     new Object[]{ "X","X",
                     Character.valueOf('X'),Block.dirt });
  • ModLoader.addRecipeで定型レシピを設定します。詳しくはレシピの追加をご覧下さい。


クラスの終わり[編集]

  }
 }
  • 最後に足りない } が入ります。このチュートリアルの場合2つになります。