Module:GetRecipes

local p = {}

-- Grabs args from the parent frame -- Trims and parses the args into a table, then returns the table function norm local origArgs = mw.getCurrentFrame:getParent.args local args = {} for k, v in pairs( origArgs ) do       v = mw.text.trim( tostring( v ) ) if v ~= '' then args[k] = v       end end return args end

-- Main entry point for the Module function p.main -- get args from the Template local args = norm -- assign variables for item, table, and group local item = args.item local table = args.table local group = args.group

-- load list of recipes local completeList = require( "Module:CraftingRecipes" ) local recipeList = completeList.recipes local itemList = completeList.items local tableList = completeList.tables local groupList = completeList.groups -- initialize a table to store recipes local recipes = {} -- load CraftingParser local parser = require( "Module:CraftingParser" ) -- priority: item > table > group if item ~= nil then if itemList[item] == nil then return '===Crafting Recipes===\n\'\'None\'\'\n===Used in Recipes===\n\'\'None\'\'\n' end for num = 1, #itemList[item] do           recipes[num] = recipeList[itemList[item][num]] end return parser.formattedItem( recipes, item ) elseif table ~= nil then if group ~= nil then local count = 1 for num = 1, #tableList[table] do               for gnum = 1, #groupList[group] do                    if tableList[table][num] == groupList[group][gnum] then recipes[count] = recipeList[tableList[table][num]] count = count + 1 end end end else for num = 1, #tableList[table] do               recipes[num] = recipeList[tableList[table][num]] end end return parser.formattedTable( recipes, table ) elseif group ~= nil then for num = 1, #groupList[group] do           recipes[num] = recipeList[groupList[group][num]] end return parser.formattedGroup( recipes, group ) else return 'Invalid use of parameters, please see Template:GetRecipes.' end end

return p