n-noguchi / FatCatMOD

MinecraftのデブネコMODです
http://forum.minecraftuser.jp/viewtopic.php?f=13&t=28511
MIT License
0 stars 0 forks source link

minecraft1.12移行 net.minecraftforge.fml.common.registry.GameRegistry.addRecipe() #4

Open n-noguchi opened 5 years ago

n-noguchi commented 5 years ago

下記コードのv1.12対応方法を確認する。

        GameRegistry.addRecipe(
                new ItemStack(brush, 1),
                "BT ", "BT ", " T ",
                'B', Blocks.HAY_BLOCK, 'T', Items.STICK);
        GameRegistry.addRecipe(
                new ItemStack(feather_toy, 1),
                " F ", " F ", " T ",
                'F', furball, 'T', Items.STICK);
n-noguchi commented 5 years ago

既存MinecraftForgeコード

https://github.com/MinecraftForge/MinecraftForge/blob/1.8.8/src/main/java/net/minecraftforge/fml/common/registry/GameRegistry.java#L239

    public static void addRecipe(ItemStack output, Object... params)
    {
        addShapedRecipe(output, params);
    }

    public static IRecipe addShapedRecipe(ItemStack output, Object... params)
    {
        return CraftingManager.getInstance().addRecipe(output, params);
    }

引数は並べ方等の情報等が含まれると下記フォーラムにコメントあり

https://forum.minecraftuser.jp/viewtopic.php?f=39&t=18633

n-noguchi commented 5 years ago

CraftingManager.javaレシピ登録サンプル

https://github.com/nullbear/minecraft/blob/master/net/minecraft/item/crafting/CraftingManager.java#L38

n-noguchi commented 5 years ago

1.12での登録についての情報

Kotori minecraft mod - 1.12 レシピ登録のまとめ

ブロックやアイテムと同様に登録用のイベント(RegistryEvent.Register<IRecipe>)が出されるので@SubscribeEventをつけたメソッド内でレシピの登録をすることができます。
RegistryEvent.Register<IRecipe>#getRegistry().register(IRecipe)でレシピを登録できます。
また、GameRegistry#addShapedRecipeも使用できます。
IRecipeを継承しているのはShapedRecipeとShapelessRecipesの二つ
インスタンスの作り方は省略。ソースを見れば大丈夫だと思います。
このレシピには管理用の名前を適切に設定しなければなりません。
IRecipe#setRegistryName(String)で設定できます。

addShapedRecipeについては第一引数ResourceLocationの指定方法が不明