Module:Chemistry Lookup: Difference between revisions
From Space Station 14 Wiki
No edit summary |
(aaa) |
||
Line 20: | Line 20: | ||
out = out .. frame:expandTemplate{ title = "Chembox", args = { prototype = k }} | out = out .. frame:expandTemplate{ title = "Chembox", args = { prototype = k }} | ||
end | end | ||
end | |||
return out | |||
end | |||
function p.buildrecipes(frame) | |||
local chem = frame.args[1] | |||
local out = "" | |||
for 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 | end | ||
return out | return out |
Revision as of 05:23, 18 December 2021
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 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