[解決]追加したアイテムのレシピを設定する方法について

Modding・サーバPlugin制作・ツール制作など、開発関連の質問があればこちらにお願い致します。
フォーラムルール
質問関連フォーラムで質問する時は、必ず次のトピックを一読/厳守お願い致します。
viewtopic.php?f=5&t=999
  • (PostNo.252990)

[解決]追加したアイテムのレシピを設定する方法について

投稿記事by 新人もっだー » 2015年11月04日(水) 18:15

開発環境は、forge 10.13.4.1517(1.7.10)です。
質問なのですが、addRecipeで追加したアイテムのレシピを指定するには、どうしたらよいですか?
調べたようにしても反映されませんでした。
コード: 全て選択
package S_test;

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;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;

@Mod(modid="r_c", name="Recipes_eyes", version="1.0")
public class matter {
   
   public static Item Inactive_eye;
   @EventHandler
   public void preInit(FMLPreInitializationEvent event)
   {


      Inactive_eye = new Item()
   .setCreativeTab(CreativeTabs.tabMaterials)
   .setUnlocalizedName("Inactive_eye")
   .setTextureName("tex:I_Mater")
   .setMaxStackSize(64);
   GameRegistry.registerItem(Inactive_eye,"Inactive_eye");
   
     }

   public class RecipeSample{
       @Mod.EventHandler
       public void preInit(FMLPreInitializationEvent event){
       }
   
       @Mod.EventHandler
       public void init(FMLInitializationEvent event){
   
           GameRegistry.addRecipe(new ItemStack(Inactive_eye,1),
                   "aaa",
                   "aba",
                   "aaa",
                   'a', Blocks.obsidian,
                   'a', Items.ender_pearl
                 );}}}
   
最後に編集したユーザー 新人もっだー [ 2016年1月25日(月) 16:11 ], 累計 2 回
instance().instance().instance() = null;
アバター
新人もっだー
ID:f4092567
石掘り
 
記事: 131
登録日時: 2015年6月22日(月) 17:58

  • (PostNo.252992)

Re: [未解決]追加したアイテムのレシピを設定する方法について

投稿記事by エリンギ » 2015年11月04日(水) 18:39

新人もっだー さんが書きました: new ItemStack(matter.I_eye,1 ),

赤で示した部分は、システム名(この場合Matter)を指定するだけで十分かと思われます。
アバター
エリンギ
ID:27911246
掘り廃人
 
記事: 1674
登録日時: 2013年11月30日(土) 17:18

  • (PostNo.252996)

Re: [未解決]追加したアイテムのレシピを設定する方法について

投稿記事by 新人もっだー » 2015年11月04日(水) 18:53

エリンギ さんが書きました:
新人もっだー さんが書きました: new ItemStack(matter.I_eye,1 ),

赤で示した部分は、システム名(この場合Matter)を指定するだけで十分かと思われます。

System名はI_eyeの方です。
下のようにしても、エラーは消えましたが、反映しませんでした。
コード: 全て選択
GameRegistry.addRecipe(
            new ItemStack(Matter,1 ),
            new Object[] {
                "aaa",
               "aba",   
               "aaa",   
                'a', Blocks.obsidian,
                'b', Items.ender_pearl } );

(ender_eyeだとエンダーチェストと被っていたので、ender_pearlにしました。)
instance().instance().instance() = null;
アバター
新人もっだー
ID:f4092567
石掘り
 
記事: 131
登録日時: 2015年6月22日(月) 17:58

  • (PostNo.252997)

Re: [未解決]追加したアイテムのレシピを設定する方法について

投稿記事by エリンギ » 2015年11月04日(水) 19:00

新人もっだー さんが書きました:
エリンギ さんが書きました:
新人もっだー さんが書きました: new ItemStack(matter.I_eye,1 ),

赤で示した部分は、システム名(この場合Matter)を指定するだけで十分かと思われます。

System名はI_eyeの方です。
下のようにしても、エラーは消えましたが、反映しませんでした。
コード: 全て選択
GameRegistry.addRecipe(
            new ItemStack(Matter,1 ),
            new Object[] {
                "aaa",
               "aba",   
               "aaa",   
                'a', Blocks.obsidian,
                'b', Items.ender_pearl } );

(ender_eyeだとエンダーチェストと被っていたので、ender_pearlにしました。)

指摘し忘れていましたが、new Object[] の部分が余計なように思われます。(参考)一度消してみてください。
アバター
エリンギ
ID:27911246
掘り廃人
 
記事: 1674
登録日時: 2013年11月30日(土) 17:18

  • (PostNo.252998)

Re: [未解決]追加したアイテムのレシピを設定する方法について

投稿記事by elise_blacklab » 2015年11月04日(水) 19:03

Recipesクラスを作ってregistry()というメソッドを作るのはいいですけど(staticになってないのでそれはそれで良くないけど),根本的にそのregistry()なるメソッドが呼ばれていないように見えます.

◇追記◇誤字おうふ
最後に編集したユーザー elise_blacklab [ 2015年11月04日(水) 19:59 ], 累計 2 回
メイドつくってたりします.http://6docvc.net/
アバター
elise_blacklab
ID:5f84d3cc
掘り廃人
 
記事: 2456
登録日時: 2014年6月25日(水) 18:30

  • (PostNo.253001)

Re: [未解決]追加したアイテムのレシピを設定する方法について

投稿記事by 新人もっだー » 2015年11月04日(水) 19:53

Codeを変えてみました。(これでも反映されません。)
コード: 全て選択
package S_test;

import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.registry.GameRegistry;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;

@Mod(modid="r_c", name="Recipes_eyes", version="1.0")
public class matter {
   
   public static Item eye1;
   @EventHandler
   public void preInit(FMLPreInitializationEvent event)
   {


   eye1 = new Item()
   .setCreativeTab(CreativeTabs.tabMaterials)
   .setUnlocalizedName("Inactive_eye")
   .setTextureName("tex:I_Mater")
   .setMaxStackSize(64);
   GameRegistry.registerItem(eye1,"I_eye");
   
     }

    public void registry()
    {
        GameRegistry.addRecipe(
            new ItemStack(eye1,1 ),
           
                "aaa",
               "aba",   
               "aaa",   
                'a', Blocks.obsidian,
                'b', Items.ender_pearl  );

}}
最後に編集したユーザー 新人もっだー [ 2015年11月04日(水) 19:56 ], 累計 1 回
instance().instance().instance() = null;
アバター
新人もっだー
ID:f4092567
石掘り
 
記事: 131
登録日時: 2015年6月22日(月) 17:58

  • (PostNo.253002)

Re: [未解決]追加したアイテムのレシピを設定する方法について

投稿記事by elise_blacklab » 2015年11月04日(水) 19:56

新人もっだー さんが書きました:Codeを変えてみました。

ですからregistry()なるメソッドが呼ばれていませんよ?
Javaの基本はできていますかね?
メイドつくってたりします.http://6docvc.net/
アバター
elise_blacklab
ID:0934c0ed
掘り廃人
 
記事: 2456
登録日時: 2014年6月25日(水) 18:30

  • (PostNo.253004)

Re: [未解決]追加したアイテムのレシピを設定する方法について

投稿記事by ☭Destroy//Accuracy☭ » 2015年11月04日(水) 20:03

新人もっだー さんが書きました:Codeを変えてみました。(これでも反映されません。)
コード: 全て選択
package S_test;

import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.registry.GameRegistry;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;

@Mod(modid="r_c", name="Recipes_eyes", version="1.0")
public class matter {
   
   public static Item eye1;
   @EventHandler
   public void preInit(FMLPreInitializationEvent event)
   {


   eye1 = new Item()
   .setCreativeTab(CreativeTabs.tabMaterials)
   .setUnlocalizedName("Inactive_eye")
   .setTextureName("tex:I_Mater")
   .setMaxStackSize(64);
   GameRegistry.registerItem(eye1,"I_eye");
   
     }

    public void registry()
    {
        GameRegistry.addRecipe(
            new ItemStack(eye1,1 ),
           
                "aaa",
               "aba",   
               "aaa",   
                'a', Blocks.obsidian,
                'b', Items.ender_pearl  );

}}


『eye1』は登録名であり、システム名ではありません。その先はご自分で考えてみてください。
和風はお好き?
  • 1.7.10永住民です。1.8? 1.9? 1.10? 知らんな。
  • 趣味の範囲でModの開発を手がけています。過去VerのModのサルベージ希望とかを見かけたら規約に違反しない範囲で配布するかも。
  • テクスチャ書くの上手い人って羨ましいですよね。上手になりたい。
アバター
☭Destroy//Accuracy☭
ID:7812e4b9
石掘り
 
記事: 78
登録日時: 2015年11月03日(火) 08:46

  • (PostNo.253006)

Re: [未解決]追加したアイテムのレシピを設定する方法について

投稿記事by 新人もっだー » 2015年11月04日(水) 20:11

elise_blacklab さんが書きました:
新人もっだー さんが書きました:Codeを変えてみました。

ですからregistry()なるメソッドが呼ばれていませんよ?
Javaの基本はできていますかね?

moddingWikiを参考にしました。どうでしょう
コード: 全て選択
package S_test;

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;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;

@Mod(modid="r_c", name="Recipes_eyes", version="1.0")
public class matter {
   
   public static Item eye1;
   @EventHandler
   public void preInit(FMLPreInitializationEvent event)
   {


   eye1 = new Item()
   .setCreativeTab(CreativeTabs.tabMaterials)
   .setUnlocalizedName("Inactive_eye")
   .setTextureName("tex:I_Mater")
   .setMaxStackSize(64);
   GameRegistry.registerItem(eye1,"I_eye");
   
     }

   public class RecipeSample{
       @Mod.EventHandler
       public void preInit(FMLPreInitializationEvent event){
       }
   
       @Mod.EventHandler
       public void init(FMLInitializationEvent event){
   
           GameRegistry.addRecipe(new ItemStack(eye1),
                   "aaa",
                   "aba",
                   "aaa",
                   'a', Blocks.obsidian,
                   'a', Items.ender_pearl
                 );}}}
instance().instance().instance() = null;
アバター
新人もっだー
ID:f4092567
石掘り
 
記事: 131
登録日時: 2015年6月22日(月) 17:58

  • (PostNo.253007)

Re: [未解決]追加したアイテムのレシピを設定する方法について

投稿記事by elise_blacklab » 2015年11月04日(水) 20:15

まずもう一度(Moddingの,ではなく)Javaの基本的なお勉強をしてから出直すことをおすすめします.
今の状態からアドバイスをするのは困難です.
Modding wikiにあるJavaソースの基本的構文が理解できるレベルにはなってください.

とっても優しい人は,死ぬほど詳しく回答を付けるのでしょうが,そうしてしまうとフォーラムの範疇を超えてしまいます.
最後に編集したユーザー elise_blacklab [ 2015年11月04日(水) 20:18 ], 累計 1 回
メイドつくってたりします.http://6docvc.net/
アバター
elise_blacklab
ID:0934c0ed
掘り廃人
 
記事: 2456
登録日時: 2014年6月25日(水) 18:30

  • (PostNo.253008)

Re: [未解決]追加したアイテムのレシピを設定する方法について

投稿記事by ☭Destroy//Accuracy☭ » 2015年11月04日(水) 20:17

新人もっだー さんが書きました:
elise_blacklab さんが書きました:
新人もっだー さんが書きました:Codeを変えてみました。

ですからregistry()なるメソッドが呼ばれていませんよ?
Javaの基本はできていますかね?

moddingWikiを参考にしました。どうでしょう
コード: 全て選択
package S_test;

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;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;

@Mod(modid="r_c", name="Recipes_eyes", version="1.0")
public class matter {
   
   public static Item eye1;
   @EventHandler
   public void preInit(FMLPreInitializationEvent event)
   {


   eye1 = new Item()
   .setCreativeTab(CreativeTabs.tabMaterials)
   .setUnlocalizedName("Inactive_eye")
   .setTextureName("tex:I_Mater")
   .setMaxStackSize(64);
   GameRegistry.registerItem(eye1,"I_eye");
   
     }

   public class RecipeSample{
       @Mod.EventHandler
       public void preInit(FMLPreInitializationEvent event){
       }
   
       @Mod.EventHandler
       public void init(FMLInitializationEvent event){
   
           GameRegistry.addRecipe(new ItemStack(eye1),
                   "aaa",
                   "aba",
                   "aaa",
                   'a', Blocks.obsidian,
                   'a', Items.ender_pearl
                 );}}}

ModdingWikiの場合登録名とシステム名を同じにしているから正常に動作するんです。
このソースコードを見る限り登録名とシステム名が異なっています。だからこのままではいくらほかの部分をどのサイトから参考にしてもレシピは読み込まれません。
和風はお好き?
  • 1.7.10永住民です。1.8? 1.9? 1.10? 知らんな。
  • 趣味の範囲でModの開発を手がけています。過去VerのModのサルベージ希望とかを見かけたら規約に違反しない範囲で配布するかも。
  • テクスチャ書くの上手い人って羨ましいですよね。上手になりたい。
アバター
☭Destroy//Accuracy☭
ID:7812e4b9
石掘り
 
記事: 78
登録日時: 2015年11月03日(火) 08:46

  • (PostNo.253010)

Re: [未解決]追加したアイテムのレシピを設定する方法について

投稿記事by elise_blacklab » 2015年11月04日(水) 20:19

Destroy2528 さんが書きました:

貴方も曖昧な回答をつけたきり学習しないなら帰ってください.混乱を生むだけです.
wikiを参考にするのは構わんですがしっかり読んで検証する癖は付けましょうよ.

そもそも,私はレシピが反映されない根本的な原因を指摘しました.仮に名前を揃えても絶対にレシピ登録はされないのです.何故でしょう?この際貴方も考えてみてください.ってか答え上で書いたんですが.
メイドつくってたりします.http://6docvc.net/
アバター
elise_blacklab
ID:0934c0ed
掘り廃人
 
記事: 2456
登録日時: 2014年6月25日(水) 18:30

  • (PostNo.253040)

Re: [未解決]追加したアイテムのレシピを設定する方法について

投稿記事by ☭Destroy//Accuracy☭ » 2015年11月05日(木) 17:03

elise_blacklab さんが書きました:

なるほど...理解しました。確かにregistry()なるメゾット、呼ばれてませんね。
まだまだ私も初心者ですね...。曖昧な回答をしてしまい申し訳ない。
和風はお好き?
  • 1.7.10永住民です。1.8? 1.9? 1.10? 知らんな。
  • 趣味の範囲でModの開発を手がけています。過去VerのModのサルベージ希望とかを見かけたら規約に違反しない範囲で配布するかも。
  • テクスチャ書くの上手い人って羨ましいですよね。上手になりたい。
アバター
☭Destroy//Accuracy☭
ID:7812e4b9
石掘り
 
記事: 78
登録日時: 2015年11月03日(火) 08:46


Return to 質問:開発・制作関連

x