Modding > アイテム・レシピの追加

自作アイテムの追加とレシピの追加について。 ここでは例として新しいアイテム(鉄の棒)を作成して、これを使って線路を作成するレシピを作ってみる。

この記事は minecraft B1.6_06, MCP34, ModLoader B1.6_06 について書かれたものです。

大まかな流れはModdingを参照すること。

目次

ItemIronStick(鉄の棒)クラス

MCPROOT/sources/minecraft/net/minecraft/src/ に新しくItemIronStick.javaを作成する。 (自作するときは、既存のクラス名とかぶらないように注意。)

内容は次の通り。

package net.minecraft.src;
 
public class ItemIronStick extends Item
{
    public ItemIronStick(int i)
    {
        super(i);
        maxStackSize = 64;
    }
}

アイテムなのでItemクラスを継承する。 コンストラクタではmaxStackSize(スタック可能数)の設定のみを行っている。 Itemクラスのメソッドを呼び出したり、適切なメソッドをオーバーライドして挙動を変える。

ModLoaderからのエントリポイントとなるクラス

エントリポイントなので、BaseModを継承したクラスを作成。 MCPROOT/sources/minecraft/net/minecraft/src/ に新しく mod_ReasonableRails.java を作成する。 内容は次の通り。

package net.minecraft.src;
 
public class mod_ReasonableRails extends BaseMod
{
    public mod_ReasonableRails()
    {
        super();
        //ここで自作MODを初期化する
    }
 
    public String getVersion()
    {
        //ModLoaderが対応しているバージョンを書きこむ
         return "1.3.1";
    }
 
    // /gui/items.pngの使われてないテクスチャ部分を、/mod/ironsitck.png でオーバーライド。
    // オーバーライドしたテクスチャ番号が返るので、それをIconテクスチャに設定。
    private static int IronStickIcon= ModLoader.getUniqueSpriteIndex("/gui/items.png");
 
    //アイテムの定義:IDは200番(他のアイテムと絶対に被ってはいけない)
    public static final Item ironstick = new ItemIronStick(200)
            //アイコンの設定
            .setIconIndex(IronStickIcon)
            //アイテム名の設定
            .setItemName("IronStick");
 
    //インスタンスをここで初期化する。
    public void load()
    {	
        //アイコンの読み込み
        ModLoader.addOverride("/gui/items.png", "/mod/ironstick.png", IronStickIcon);
 
        //アイテム名登録、これでインベントリとかで名前が出てくる。
        ModLoader.addName(ironstick,"Iron Stick");
 
        //鉄2個から鉄の棒を4個作成するレシピを追加。
        ModLoader.addRecipe(new ItemStack(ironstick, 4),
            new Object[]{
                     "#", //鉄を縦に2個並べる
                     "#",
                     //'#'はItem.javaで定義されてる鉄のインゴット
                     Character.valueOf('#'), Item.ingotIron
                     });
 
        //鉄の棒と木の棒から、線路を4個作成するレシピを追加。
        ModLoader.addRecipe(new ItemStack(Block.rail, 4),
            new Object[]{
                     "#x#", //鉄の棒・木の棒・鉄の棒と並べる
                     //'#'は自作の鉄の棒
                     Character.valueOf('#'), ironstick,
                     //'x'はデフォルトの木の棒
                     Character.valueOf('x'), Item.stick
                     });
    }
}

public void load()ブロックで、ItemIronStickのインスタンスを作成し、名前とテクスチャを設定している。 また、addRecipesメソッドでレシピを追加している。

テクスチャは自作テクスチャとして、"mod/ironstick.png"を使用するよう設定した。

ModLoaderの最新版では、BaseMod.AddRecipesは削除され、変わりにModLoader.AddRecipesを静的に呼び出す仕様になっているので注意。

リソース

/mod/ironsitck.png を使うコードを書いたので、実際にこのリソースを配置する。

MCPROOT/bin/minecraft/ に新たにmodというフォルダを作成し、その中に ironstick.png をコピーする。 (MCPROOT/bin/minecraft/mod/ironstick.pngになる)

この説明で使用するサンプルはこれ。

MCPROOT/bin/ 以下は cleanup すると消えるので、マスターデータは別の場所にとっておくこと。

編集用コメント

コメント欄の方針に関してはコメント欄方針を参照して下さい。
wikiの編集が苦手な方は、以下のコメントフォームへ書き込んで頂ければ有志でページに取り込みます。
※コメントを投稿する際は、以下の点を確認して下さい※
  • 編集に関わらない内容のコメント・質問・雑談 は一律して削除されます。
    Wiki運営に関してはWiki運営掲示板、質問は質問掲示板、雑談等は非公式フォーラムにてお願いします。
  • 投稿の前に、一度コメントログや、バージョンアップ直後はパッチノートにも目を通し、 既に同じ内容が載っていないか確認して下さい。
  • 投稿されているコメントへの返信の際は、 返信したいコメント横の○にチェックを入れて 返信して下さい。
    表示できる親コメントの数は限られます。新規投稿をむやみに行うことは、他のコメントが流れてしまう要因になります。
  • 鯖主さんすみません、コメントが更新と被ったので消えてしまいました。最新verに更新しました。 -- KEY (2011-06-17 01:15:37)
  • 大丈夫ですよ
    それより更新ありです -- 鯖主 (2011-06-17 12:35:47)
  • 試したらエラーが幾つか出てたので勝手に直してみた&ちょっと追加してみました。動けば良いや的な直し方なので余り良い方法ではないかもしれない -- 名無しさん (2011-06-23 04:47:46)
  • ためしにやっては見る者の「Minecraft has crashed! ---------------------- Minecraft has stopped running because it encountered a problem. If you wish to report this, please copy this entire text and email it to support@mojang.com. Please include a description of what you did when the error occured.」と出て、テストができないどうすればいいのですか? 長々とすいません・・ -- 名無しさん (2011-06-26 14:27:36)
    • 質問は受け付けてません。上記の説明をちゃんと読んでから書き込むようにしてください。 - 名無しさん 2011-10-01 21:58:06
  • こっちでいいかな、eclipseで実行したときのリソースは、MCPROOT/eclipse/Client/bin/以下のようです。 -- 名無しさん (2011-06-26 18:51:57)
  • 1.8.1でもこの方式でアイテム、レシピともに追加可能でした。ブロックの追加は記述されないんでしょうか? - 名無しさん 2011-09-20 19:51:51
  • 他のレシピの作り方って無いんですか?(例:鎧) - 名無しさん 2011-10-28 02:18:50
    • Javaの基本を学んだうえで上の説明を読み、かつ普通に応用力を持っていればわかるはず。Java知らないけど教えてってのは論外と言わざるえない - 名無しさん 2011-10-28 19:07:33
  • 1.2.3からModLoaderのAddNameやAddrecipeの頭文字が小文字になったようです - 名無しさん 2012-03-11 01:05:50
  • レシピを縦にも使うときの説明はないの? - 名無しさん 2012-07-25 18:27:24
  • 軽く訂正加えました(動作テスト済) デフォルトでは対応バージョンは1.3.1となります - 名無しさん 2012-08-13 08:49:54
名前:

コメントログ


|新しいページ|検索|ページ一覧|RSS|@ウィキご利用ガイド | 管理者にお問合せ
|ログイン|
Wikiのガイドライン
必ずお読みください!

基本事項



プラットフォーム



アイテムデータ



ゲームデータ



ワールド



Tips



ADVANCE



マルチプレイ



リンク




Wiki運営



その他





カウンタ


合計
-

トップページ
今日 : -
昨日 : -

更新履歴


取得中です。
※「ログ」「アーカイブ」「コメント」のページはここの履歴に表示されませんので、「更新履歴」および「コメント」から参照してください

人気ページ