Module:Chemistry Lookup
From Space Station 14 Wiki
Documentation for this module may be created at Module:Chemistry Lookup/doc
local prototypes = mw.loadData("Module:Chemistry Lookup/data") local p = {} p.chem = prototypes[1] p.react = prototypes[2] function p.readscalar(frame) return mw.text.nowiki(p.chem[frame.args[1]][frame.args[2]]) end function p.hasrecipe(frame) return p.chem[frame.args[1]]["recipes"][1] ~= nil end function p.buildboxes(frame) local out = "" local group = frame.args[1] for k in pairs(p.chem) do if p.chem[k].group == group then out = out .. frame:expandTemplate{ title = "Chembox", args = { prototype = k }} end end return out end function p.buildrecipes(frame) local chem = frame.args[1] local out = "" for id, recipe in pairs(p.chem[chem].recipes) do local data = p.react[recipe] local reactants = {} local i = 0 for k,v in ipairs(data.reactants) do i = i + 1 table.insert(reactants, "component-" .. i, frame:expandTemplate{ title = "Chem Recipe Component", args = { reagent = p.chem[k].name, amount = v.amount }}) end local args = {} for k,v in pairs(reactants) do args[k] = v end out = out .. frame:expandTemplate{ title = "Chem Box Recipe", args = args } end return out end return p