[チュートリアル][初級] 近接武器追加MOD作成チュートリアル [1.2.5][Forge-1.3.2版有]

クライアント/サーバーMODの開発に関する話題、技術交換はこちらで。質問は質問フォーラムへお願いします。
  • (PostNo.56391)

[チュートリアル][初級] 近接武器追加MOD作成チュートリアル [1.2.5][Forge-1.3.2版有]

投稿記事by そば娘 » 2012年9月27日(木) 19:51

はじめに
 Minecraft 1.2.5 で "近接武器" を追加するMOD作成のチュートリアルです。

 Minecraft 1.3.2でのMOD作成は、応用すれば大丈夫だと思います。
 NurseAngel 氏が 1.3.2 Forge#251 使用のチュートリアルを作成。チュートリアルはこちら


 今回は、既存アイテムを使い、新しい近接武器の追加をするMODです。
 前提MODはModLoaderのみ。
 小さな事から説明していきます。

 "おまけ"追加。ちょっとしたことですが有ると少し違うものを書き加えました。


準備物
 mod_NewTestSword.java
 Item_NewTestSword.java

 TestSword.png (武器のテクスチャ)


ソースと、解説
 mod_NewTestSword.java
コード: 全て選択
package net.minecraft.src;

public class mod_NewTestSword extends BaseMod
{
   @Override
   public String getVersion()
   {
      return "1.2.5 Type:TEST";
   }

   public static Item TestSword;

   // MLProp使用でcfgにより変更可能に。
   @MLProp(info="TestSwordID")
   public static int TestSwordID = 2525;

   @Override
   public void load()
   {
      // アイテムの追加
      TestSword = new Item_NewTestSword(TestSwordID,EnumToolMaterial.STONE).setItemName("TESTSWORD");

      // テクスチャ登録
      ModLoader.addOverride("/gui/items.png", "/TUT_SWORD/TestSword.png");

      // 名前
      ModLoader.addName(TestSword, "Test Sword");

      // レシピ
      ModLoader.addRecipe(new ItemStack(TestSword, 1),
            new Object[] { "  C", "PC ", "SP ",
         Character.valueOf('C'),Block.cobblestone,
         Character.valueOf('P'),Block.planks,
         Character.valueOf('G'),Item.stick,});
   }
}


  【解 説】
 TestSword = new Item_NewTestSword(TestSwordID,EnumToolMaterial.STONE).setItemName("TESTSWORD");

 Item_NewTestSword クラスのオブジェクトを作ります。()の2つ目の引数は素材を指定します。
 
素材について
既存のEnumToolMaterialからは、
 WOOD,STONE,IRON,GOLD,EMERALD
 と、それぞれ ,,,,ダイア を使用できます。



 ModLoader.addOverride("/gui/items.png", "/TUT_SWORD/TestSword.png");

 テクスチャを登録します。 この一行を書かないと、ゲーム中では指定したテクスチャが表示されません。


 ModLoader.addName(TestSword, "Test Sword");

 アイテム名を登録します。 これでインベントリとかで名前が出てくるようになります。


 ModLoader.addRecipe(new ItemStack(TestSword, 1),
 new Object[] { " C", "PC ", "SP ",
 Character.valueOf('C'),Block.cobblestone,
 Character.valueOf('P'),Block.planks,
 Character.valueOf('G'),Item.stick,});


 TestSword を 作る "レシピ" を追加します。
 
new Object[] { " C", "PC ", "SP ",

 これは、上段右にC、 
      中段中にP 右にC、
      下段左にS 中にP を代わりに置き、

 次の行から始まる、
 
Character.valueOf('C'),Block.cobblestone (以下略)

 で、それぞれが何であるかを示します。


 Item_NewTestSword.java
 
コード: 全て選択
package net.minecraft.src;

public class Item_NewTestSword extends ItemSword
{
   private int weaponDamage;
   private final EnumToolMaterial toolMaterial;

   public Item_NewTestSword(int i, EnumToolMaterial toolmaterial)
   {
      super(i,toolmaterial);
      toolMaterial = toolmaterial;
      maxStackSize = 1;
      setMaxDamage(100);
      weaponDamage = 5;
   }

   @Override
   public int getDamageVsEntity(Entity par1Entity)
   {
      return weaponDamage;
   }

}


  【解 説】

 public Item_NewTestSword(int i, EnumToolMaterial toolmaterial)

 EnumToolMaterial を読み込みます。


 setMaxDamage(100);

 武器の耐久度を指定します。ちなみに、0にすると壊れなかったりしたはず。


 weaponDamage = 5;

 武器のダメージを指定します。この場合、相手MOBに5ダメージ与えるようになります。


 getDamageVsEntity()

 こちらのメソッドをオーバーライドすることで、武器ダメージが指定できます。

 おまけ
注釈について
@Override
Override注釈について

Eclipse を使用したModding時、オーバーライドできていない場合にエラーが出たはずです。
Eclipse を使用していない場合でも、コンパイル時にはオーバーライドできていない場合エラーが出ます。

@MLProp
ModLoaderの機能だったはず。
この注釈をアイテムID等(使用出来るのはboolean,int,double 他)の前に書き加えれば、configが生成されます。
そちらの数値を編集すればアイテムID等の変更ができます。

ちなみに、(info="TestSwordID") と付けるだけでも分かりやすくなります。


アイテム名を日本語に
ModLoader.addName(TestSword, "Test Sword");
こちらのソースを、
ModLoader.addName(TestSword,"ja_JP", "チュートリアル ソード");
このように変更します。

 


さいごに
これで解説は終了になります。その他、わからないことがあれば私のTwitter(@m_skirby)か、こちらに返信、もしくはPMをいただければ、できる限り回答します。

今回つかったソースは此方↓(ただしテクスチャは含まれない)
[1.2.5]Tutorial_SwordMOD[source].zip
ソースです。
(1012 バイト) ダウンロード数: 362 回
最後に編集したユーザー そば娘 [ 2012年9月29日(土) 15:24 ], 累計 6 回
アバター
そば娘
ID:189b3cd0
石掘り
 
記事: 147
登録日時: 2011年9月16日(金) 21:55
お住まい: 闇に飲まれてる

  • (PostNo.56462)

Re: [チュートリアル][初級] 近接武器追加MOD作成チュートリアル [1.2.5]

投稿記事by ittekikun » 2012年9月28日(金) 17:41

最近MOD作成を始めたものです


めっちゃわかりやすいです!ありがとうございます
今度頑張って作ってみます!


JAVA難しい・・・
サイン Bukkit Spigot Japan Wikiを運営しています。
些細な事でもいいので内容の充実にご協力頂ければ幸いです。
viewtopic.php?f=19&t=33020

■■ 投稿する前に ■■
  フォーラムルール
  質問関連フォーラムで質問する時は、必ず次のトピックを一読/厳守お願い致します。
  【必読】質問の仕方について↓
  viewtopic.php?f=5&t=999
アバター
ittekikun
ID:aa8a2513
ラピスラズリ収集家
 
記事: 1252
登録日時: 2011年9月25日(日) 11:51
お住まい: 夢の国の隣

  • (PostNo.56512)

[チュートリアル][初級] 近接武器追加MOD作成チュートリアル [1.3.2][Forge]

投稿記事by NurseAngel » 2012年9月29日(土) 01:29

それじゃあ1.3.2のForge251を利用した近接武器追加でも。
性能などはスカービィ氏のものと同一です。
あとマルチはプレイしないのでたぶんシングル専用。
マルチ用は誰かが書いてくれるに違いない。

なおreginn666氏のForgeModdingを多大に参考にしています。

用意するもの
    TestSword.java
    ItemNewTestSword.java
    TestSword.png (※gui/items.pngのように複数のテクスチャを16*16個並べた形式)

TestSword.java
コード: 全て選択
package net.minecraft.src.TestSword;

// extends BaseMod的なもの
@Mod(modid = "ModTestSword", name = "TestSword", version = "1.3.2.0")
public class TestSword {

    //剣
    public static Item TestSword;
    // 剣のアイテムID
    public static int TestSwordID;

    // コンストラクタ的なもの
    @Mod.PreInit
    public void modPreInit(FMLPreInitializationEvent event) {
        // Forge式コンフィグ
        Configuration cfg = new Configuration( event.getSuggestedConfigurationFile() );
        try {
            cfg.load();
            TestSwordID = cfg.getOrCreateIntProperty("TestSwordID", Configuration.CATEGORY_ITEM, 5000).getInt();
        } catch (Exception e) {
            FMLLog.log(Level.SEVERE, e, " コンフィグファイルのロードに失敗 ");
        } finally {
            cfg.save();
        }
    }

    // load()的なもの
    @Mod.Init
    public void modInit(FMLInitializationEvent event){
        // アイテムの追加
        TestSword = (Item) new ItemNewTestSword(TestSwordID, EnumToolMaterial.STONE, 0).setItemName("TESTSWORD");
        // 名前
        LanguageRegistry.addName(TestSword, "Test Sword");
        LanguageRegistry.addNameForObject(TestSword,"ja_JP", "チュートリアルソード");
        // レシピ
        GameRegistry.addRecipe(new ItemStack(TestSword, 1), new Object[]{
            "  C", "PC ", "SP ",
            'C', Block.cobblestone, 'P', Block.planks, 'S', Item.stick
        });
    }
   
    // modsLoaded()的なもの
    //@Mod.PostInit
    //public void myPostInitMethod(FMLPostInitializationEvent event){}

}


1.3のForgeでは、アノテーションを用いることでファイル名メソッド名などの縛りを無くし、自由度の高いプログラミングが可能になっています。
mod_XX.javaといった名前を付ける必要はありません。

@Mod(modid = "ModTestSword", name = "TestSword", version = "1.3.2.0")


クラス名の直前にこれを記すことで、MODの起点ファイルとなります。
modidはMinecraft内部で使用するMOD名で、他のMODと重複してはいけません。
逆にこれさえ被っていなければ、同じクラス名のMODでも同居可能。
コンフィグファイル名もここから取得され、自動的にModTestSword.cfgになります(変更しなければ)。
nameは表示に使用するMOD名で、タイトル左下のMOD一覧などで見られます。他に何処で使うかは不明。
versionはBaseMod.getVersion()です。

@Mod.PreInit
public void modPreInit(FMLPreInitializationEvent event)


@Mod.PreInitのついたメソッドはコンストラクタ的なもので、メイン処理より前に呼ばれます。
基本的にここでコンフィグの設定などを行います。
引数はお約束なのでとりあえず付けておきます。

Configuration cfg = new Configuration( event.getSuggestedConfigurationFile() );
cfg.load();
cfg.save();


コンフィグファイルを取得、保存します。

cfg.getOrCreateIntProperty("TestSwordID", Configuration.CATEGORY_ITEM, 5000).getInt();


これだけで
item {
TestSwordID=5000
}


というおなじみForge式のコンフィグになります。
ちなみにConfiguration.CATEGORY_ITEMはただのStringなので、かわりに"hoge"とか書いて
hoge {
TestSwordID=5000
}

などと分類を増やすことも可能。
書き方は@MLPropより多少面倒ですが、そのぶんわかりやすいコンフィグになります。

@Mod.Init
public void myInitMethod(FMLInitializationEvent event)


@Mod.Initを付けたメソッドはBaseMod.load()に相当します。

名前の登録はLanguageRegistry.addName()、レシピの追加はGameRegistry.addRecipe()を使いますが、引数などはModLoaderと全く同じです。
まあ互換性があるのでModLoader.addName()とかでも普通に動きますが。

@Mod.PostInitを付けたメソッドはBaseMod.modsLoaded()に相当します。
今回は使いません。


ItemNewTestSword.java

コード: 全て選択
package net.minecraft.src.nurseangel.TestSword;

public class ItemNewTestSword extends ItemSword {
    private int weaponDamage;
    private final EnumToolMaterial toolMaterial;

    public ItemNewTestSword(int i, EnumToolMaterial toolmaterial) {
        super(i, toolmaterial);
        toolMaterial = toolmaterial;
        maxStackSize = 1;
        setMaxDamage(100);
        weaponDamage = 4;

        // 使用するテクスチャ番号
        setIconIndex(0);
    }

    @Override
    public int getDamageVsEntity(Entity par1Entity) {
        return weaponDamage;
    }

    // 使用するテクスチャファイル
    @Override
    public String getTextureFile(){
        return "/TUT_SWORD/TestSword.png";
    }
}


getTextureFile()をオーバーライドするだけで、該当のテクスチャファイルを使ってくれます。
事前登録は不要です。

setIconIndex(0);

テクスチャファイルのうち、使用する場所です。
左上から1段目が0→15、2段目が16→31、といった順で一番右下が255まで、一枚で256種類を利用可能です。
サンプルだと0固定になっちゃうので、コンストラクタで値を渡すようにするといいです。

テクスチャファイル上書きによるスプライトID無限化が便利すぎてForgeが手放せぬ。
また今回は特に使っていませんが、色々な場所で要素の追加や処理の割り込みがやりやすくなっていて、Modderにとってはとても便利です。
あとはこれで安定さえしてくれればなあ
最後に編集したユーザー NurseAngel [ 2012年9月30日(日) 13:04 ], 累計 3 回
NurseAngel
ID:17ba66d7
石炭掘り
 
記事: 205
登録日時: 2012年3月17日(土) 21:38

  • (PostNo.56562)

Re: [チュートリアル][初級] 近接武器追加MOD作成チュートリアル [1.3.2][Forge]

投稿記事by そば娘 » 2012年9月29日(土) 15:31

NurseAngel さんが書きました: 

1.3.2のForge環境チュートリアル…だと…。 作成お疲れ様です。
勝手ながら "はじめに" からリンクを貼らせていただきました。
アバター
そば娘
ID:189b3cd0
石掘り
 
記事: 147
登録日時: 2011年9月16日(金) 21:55
お住まい: 闇に飲まれてる

  • (PostNo.61383)

Re: [チュートリアル][初級] 近接武器追加MOD作成チュートリアル [1.2.5][Forge-1.3.2版有]

投稿記事by guruguru » 2012年11月04日(日) 22:20

チュートリアルの内容が見やすくてたすかりました。
そこで質問です。

敵を武器で斬ったら、その敵を燃やすって事をしたいのですが、どうやればいいのか解りません。
チュートリアルのソースにどう追加すればいいのでしょうか?
guruguru
ID:3d8106c1
 

  • (PostNo.61405)

Re: [チュートリアル][初級] 近接武器追加MOD作成チュートリアル [1.2.5][Forge-1.3.2版有]

投稿記事by 邑希鎧斗 » 2012年11月05日(月) 00:15

guruguru さんが書きました:チュートリアルの内容が見やすくてたすかりました。
そこで質問です。

敵を武器で斬ったら、その敵を燃やすって事をしたいのですが、どうやればいいのか解りません。
チュートリアルのソースにどう追加すればいいのでしょうか?


1.2.5で矢にその機能を追加した時の話ですが、バニラの火のエンチャントがツイてるときの処理を参考にしました。
気まぐれで作りたいと思ったMOD作ってます。
詳細は下記にて
邑希商会MOD事業部
アバター
邑希鎧斗
ID:e640447d
レッドストーン掘り
 
記事: 528
登録日時: 2011年8月24日(水) 14:12

  • (PostNo.61517)

Re: [チュートリアル][初級] 近接武器追加MOD作成チュートリアル [1.2.5][Forge-1.3.2版有]

投稿記事by guruguru » 2012年11月05日(月) 20:26

public boolean hitEntity(ItemStack itemstack, EntityLiving entityliving, EntityLiving entityliving1){
//この武器を使ってentityliving1(通常はプレイヤー)がentityliving(通常はMob)を攻撃したときに呼ばれる。
itemstack.damageItem(1, entityliving1); //剣の耐久度を1減らす。

new EnchantmentFireAspect(20, 2); //ここに敵に火をつける処理

return true;
}

Item_NewTestSword.javaにこんな感じにして、敵を殴ると火のエンチャントを呼び出す?みたいにしたんですけど上手くいきません。
敵を殴った瞬間にブラックアウトしてしまいます。
guruguru
ID:3d8106c1
 

  • (PostNo.75539)

Re: [チュートリアル][初級] 近接武器追加MOD作成チュートリアル [1.2.5][Forge-1.3.2版有]

投稿記事by suika » 2013年1月25日(金) 00:26

moddinを最近始めて、ここのチュートリアルの剣のmodで武器modの追加の練習をしていたのですが、とくに中身を変更せずに(剣のテクスチャのみ変更)テストしたのですが画像が革のヘルメットで表示されてしまいます。もしよろしければご指摘お願いします。
suika
ID:44aee82a
 

  • (PostNo.92458)

Re: [チュートリアル][初級] 近接武器追加MOD作成チュートリアル [1.2.5][Forge-1.3.2版有]

投稿記事by あいうえ男 » 2013年4月09日(火) 13:08

モンハンのガンランスみたいに、殴ってもダメージを与えて、砲撃で小爆発を起こせる武器を作る時は、ソースのどの部分をどう書き換えたらいいですか?

また、オリジナル武器テクスチャを縦長にすることはできますか
あいうえ男
ID:3f4cec42
 

  • (PostNo.95234)

Re: [チュートリアル][初級] 近接武器追加MOD作成チュートリアル [1.2.5][Forge-1.3.2版有]

投稿記事by あれく » 2013年4月23日(火) 21:49

ModLoader.addOverride("/gui/items.png", "/TUT_SWORD/TestSword.png");

この一文は

TestSword.iconIndex = ModLoader.addOverride("/gui/items.png", "/TUT_SWORD/TestSword.png");

という風に書き換えないとテクスチャを参照してくれないみたいです。
ブロックではこの部分の処理は必要なかったので抜けていたのだと思われます。
この文章ならしっかりテクスチャを拾ってくれます。
なんか基本的にマイクラのMODやらテクスチャやらをいじくり倒して遊んでます。
(人にはあまり見せないけど)
たまにマルチに顔見せたりの不定期生活。
アバター
あれく
ID:5f558990
木を殴ってる
 
記事: 12
登録日時: 2012年12月02日(日) 15:08

  • (PostNo.97658)

Re: [チュートリアル][初級] 近接武器追加MOD作成チュートリアル [1.2.5][Forge-1.3.2版有]

投稿記事by ライトN2 » 2013年5月04日(土) 19:44

テクスチャーはどこに入れればいいですか?
アバター
ライトN2
ID:3dc0c038
木を殴ってる
 
記事: 19
登録日時: 2013年4月20日(土) 08:28

  • (PostNo.97659)

Re: [チュートリアル][初級] 近接武器追加MOD作成チュートリアル [1.2.5][Forge-1.3.2版有]

投稿記事by squarep » 2013年5月04日(土) 19:45

ライトN2 さんが書きました:テクスチャーはどこに入れればいいですか?

このスレの趣旨から離れているので調べてください。
squarep
ID:78321e12
ラピスラズリ収集家
 
記事: 1367
登録日時: 2012年8月25日(土) 16:29

  • (PostNo.97973)

Re: [チュートリアル][初級] 近接武器追加MOD作成チュートリアル [1.2.5][Forge-1.3.2版有]

投稿記事by hiroshi_s » 2013年5月06日(月) 00:05

Forgeの近接武器追加のリンク、大変参考になりました。
ダメもとで、 [1.5.1]開発環境、Forge開発環境の構築、eclipseの構築、
ソースの組み込みを、サラリーマンのGW使い2日間試しました

jdk-6u45-windows-i586.exe → Java JDK
minecraftforge-src-1.5.1-7.7.1.611.zip → forge
mcp744.zip
 → 不要との記載ありますがエラーが出たため、
   いったんこれを展開・上書きし、forgeのinstallバッチを再度動かした
minecraft_server.zip 
 → 拡張子zipをjarに変えた
pleiades-java-4.2.2-sfx.exe → eclipse です

その後、サンプルソースを 組み込みましたが残念ながら
テクスチャの仕様やフォルダ階層の変更という壁にあたり、
連休も終わりということで、息子にギフアップを伝えました。。

仕様変更に伴い、[1.5.1]では考え方を変える必要があって
この参考にさせていただいたサンプルソースは
若干構造の変更が必要そうです。
(setIconIndex、getTextureFile)

明後日からはサラリーマンに戻りますので、
どなたか1.5.1 の サンプルコードの掲載をお願いいたします。。
hiroshi_s
ID:12438900
 

  • (PostNo.98100)

Re: [チュートリアル][初級] 近接武器追加MOD作成チュートリアル [1.2.5][Forge-1.3.2版有]

投稿記事by hiroshi_s » 2013年5月06日(月) 13:16

以下の3点を抑えて無事自己解決に至りました。
ですが、TestSwordのクラスとどうやって共存すればいいか(複数武器)わからず
結局新たな壁に当たりました。。
 setUnlocalizedNameとLanguageRegistry.instance().を使ったmodInitの書き換え
 ItemNew・・クラスからのテクスチャに関する削除
 eclipse実行ボタン時用のpngファイル配置位置


・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
// load()的なもの
@Mod.Init
public void modInit(FMLInitializationEvent event){
// アイテムの追加
CrimsonSword = (Item) new ItemNewCrimsonSword(CrimsonSwordID, EnumToolMaterial.STONE)
.setUnlocalizedName("sample:CrimsonSword").setCreativeTab(CreativeTabs.tabMaterials);

// 名前
LanguageRegistry.addName(CrimsonSword, "Crimson Sword");
LanguageRegistry.instance().addNameForObject(CrimsonSword,"ja_JP", "クリムゾンソード");

// レシピ
GameRegistry.addRecipe(new ItemStack(CrimsonSword, 1), new Object[]{
" B ", "RBR", " B ",
'R', Block.blockRedstone, 'B', Item.blazeRod, 'S', Item.stick
});
}

・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
public class ItemNewCrimsonSword extends ItemSword {
private int weaponDamage;
private final EnumToolMaterial toolMaterial;

public ItemNewCrimsonSword(int i, EnumToolMaterial toolmaterial) {
super(i, toolmaterial);
toolMaterial = toolmaterial;
maxStackSize = 1;
setMaxDamage(100);
weaponDamage = 100;
}

@Override
public int getDamageVsEntity(Entity par1Entity) {
return weaponDamage;
}

}
hiroshi_s
ID:12438900
 

  • (PostNo.195153)

Re: [チュートリアル][初級] 近接武器追加MOD作成チュートリアル [1.2.5][Forge-1.3.2版有]

投稿記事by ゆっくりKei » 2014年9月21日(日) 18:10

1.7.10でforgeを使った方法
参考=【ニコニコ動画】【Minecraft 1.7.2】Mod開発講座 Part2 基本Mod作成編
ExampleMod.javaをリネームし、開いてこれに変える
(ちゃんとセットアップはしてから)
javaファイルの中身

package minecraft.keiMod.java;

import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.ItemSword;
import net.minecraftforge.common.util.EnumHelper;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.registry.GameRegistry;

@Mod(modid = CORE.MODID,name=CORE.MODID ,version = CORE.VERSION)
public class CORE
{
public static final String MODID = "KeisCOREMod";
public static final String VERSION = "1.0";

@EventHandler
public void preinit(FMLPreInitializationEvent e)
{

Item Diamondjewel=new Item();
Diamondjewel.setUnlocalizedName("Diamondjewel");
Diamondjewel.setCreativeTab(CreativeTabs.tabMaterials);
GameRegistry.registerItem(Diamondjewel, "Diamondjewel");
Diamondjewel.setTextureName("KeisCOREMod:Diamondjewel");
GameRegistry.addRecipe(new ItemStack (Diamondjewel,3),
new Object[]{"E R",'E',Items.diamond,'R',Items.water_bucket});

//EnamToolMaterial
Item.ToolMaterial DiamondjewelMaterial=EnumHelper.addToolMaterial("DIAMONDJEWEL", 60, 900000, 600F, 90F, 9000);
DiamondjewelMaterial.customCraftingMaterial=Diamondjewel;
//剣の名前
Item Flame_sword=new ItemSword(DiamondjewelMaterial);
Flame_sword.setUnlocalizedName("Diamondjewel_sword");
//テクスチャ名
Flame_sword.setTextureName("KeisCOREMod:Flame_sword");
//ItemIDは要らなくなりました。その代わりにGameRegistry.registryItemが必要になりました。
GameRegistry.registerItem(Flame_sword, "Flame_sword");
//レシピ登録
GameRegistry.addRecipe(new ItemStack(Flame_sword),
new Object[]{"R E"," RE","RRF",'R',Diamondjewel,'E',Items.gold_ingot,'F',Items.blaze_rod});
}

@EventHandler
public void init(FMLInitializationEvent Event)
{
}
}
ゆっくりKei
ID:b5cd065c
 


Return to 開発関連

x