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