Module:Chemistry Lookup: Difference between revisions
From Space Station 14 Wiki
(aaa) |
No edit summary |
||
Line 27: | Line 27: | ||
local chem = frame.args[1] | local chem = frame.args[1] | ||
local out = "" | local out = "" | ||
for recipe in pairs(p.chem[chem].recipes) do | for id, recipe in pairs(p.chem[chem].recipes) do | ||
local data = p.react[recipe] | local data = p.react[recipe] | ||
local reactants = {} | local reactants = {} |
Revision as of 05:29, 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 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