From d17d7eba14f6a1328a3b58ee086df5ffa56304d6 Mon Sep 17 00:00:00 2001 From: Jude Melton-Houghton Date: Mon, 9 May 2022 18:21:08 -0400 Subject: Fix cooking and fuel crafts with aliases --- games/devtest/mods/unittests/crafting_prepare.lua | 14 ++++++++++---- src/craftdef.cpp | 6 ++++-- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/games/devtest/mods/unittests/crafting_prepare.lua b/games/devtest/mods/unittests/crafting_prepare.lua index a09734827..5cf5775e0 100644 --- a/games/devtest/mods/unittests/crafting_prepare.lua +++ b/games/devtest/mods/unittests/crafting_prepare.lua @@ -31,25 +31,31 @@ minetest.register_craftitem("unittests:steel_ingot", { groups = { dummy = 1 }, }) +-- Use aliases in recipes for more complete testing + +minetest.register_alias("unittests:steel_ingot_alias", "unittests:steel_ingot") +minetest.register_alias("unittests:coal_lump_alias", "unittests:coal_lump") +minetest.register_alias("unittests:iron_lump_alias", "unittests:iron_lump") + -- Recipes for tests: Normal crafting, cooking and fuel minetest.register_craft({ output = 'unittests:torch 4', recipe = { - {'unittests:coal_lump'}, + {'unittests:coal_lump_alias'}, {'unittests:stick'}, } }) minetest.register_craft({ type = "cooking", - output = "unittests:steel_ingot", - recipe = "unittests:iron_lump", + output = "unittests:steel_ingot_alias", + recipe = "unittests:iron_lump_alias", }) minetest.register_craft({ type = "fuel", - recipe = "unittests:coal_lump", + recipe = "unittests:coal_lump_alias", burntime = 40, }) diff --git a/src/craftdef.cpp b/src/craftdef.cpp index 210605198..c05a0cfb7 100644 --- a/src/craftdef.cpp +++ b/src/craftdef.cpp @@ -734,7 +734,8 @@ bool CraftDefinitionCooking::check(const CraftInput &input, IGameDef *gamedef) c } // Check the single input item - return inputItemMatchesRecipe(input_filtered[0], recipe, gamedef->idef()); + std::string rec_name = craftGetItemName(recipe, gamedef); + return inputItemMatchesRecipe(input_filtered[0], rec_name, gamedef->idef()); } CraftOutput CraftDefinitionCooking::getOutput(const CraftInput &input, IGameDef *gamedef) const @@ -836,7 +837,8 @@ bool CraftDefinitionFuel::check(const CraftInput &input, IGameDef *gamedef) cons } // Check the single input item - return inputItemMatchesRecipe(input_filtered[0], recipe, gamedef->idef()); + std::string rec_name = craftGetItemName(recipe, gamedef); + return inputItemMatchesRecipe(input_filtered[0], rec_name, gamedef->idef()); } CraftOutput CraftDefinitionFuel::getOutput(const CraftInput &input, IGameDef *gamedef) const -- cgit v1.2.3