Module:RequiredCraftingStations

local p = {} function p.neededstations( f ) local args = f:getParent.args local stations = {["Campfire"] = false, ["Mortar And Pestle"] = false, ["Refining Forge"] = false, ["Preserving Bin"] = false, ["Smithy"] = false, ["Fabricator"] = false} local dependencies = { --["Campfire"] = { --"Charcoal", --"Cooked Meat", --"Cooked Prime Meat", --"Gunpowder" --}, }

-- check if item itself needs a station to be crafted in. if yes, set to true if args.craftedin ~= nil and stations[args.craftedin] ~= nil then stations[args.craftedin] = true end -- get iconsize local iconsize = '20px' if args.iconsize ~= nil then iconsize = args.iconsize end

-- test all given resources and set station to true if needed and station is not already on true for _,res in ipairs(args) do   if res ~= '' then for station,_ in pairs(dependencies) do       if not stations[station] and p.inTable(dependencies[station], res) then stations[station] = true end end end end

local returnTable = {} for station, needed in pairs(stations) do   if needed then table.insert(returnTable,' '..station..'') end end

return table.concat(returnTable,' ') end

function p.inTable(tbl, item) for _, value in pairs(tbl) do   if string.lower(value) == string.lower(item) then return true end end return false end

return p