缺氧 wiki 编辑团队提示:注册账号并登录后体验更佳,且可通过参数设置定制优化您的浏览体验!
该站点为镜像站点,如果你想帮助这个由玩家志愿编辑的 wiki 站点,请前往原站点参与编辑,
同时欢迎加入编辑讨论群 851803695 与其他编辑者一起参与建设!
全站通知:
模块:Utils/Recipes
刷
历
编
< 模块:Utils
跳到导航
跳到搜索
此模块的文档可以在模块:Utils/Recipes/doc创建
local p = {}
local utils = require("Module:Utils")
local getEntry = utils.getEntry
local fstr = mw.ustring.format
local arrow = "⇒"
-- for desc in infoboxes(fabricators known or not shown)
--[[
test by:
local buData = mw.loadData("Module:Data/Buildings")
for k,v in pairs(buData) do
if v.recipes then
local desc = p.infobox(v.recipes)
mw.log(desc)
end
end
]]--
function p.infobox(recipes, args)
local out = {}
for _, recipe in ipairs(recipes) do
local desc = {}
local timeSlice = recipe.workTime > 1 and fstr("每 %s 秒", recipe.workTime) or "每秒"
local inputs = {}
for _, input in ipairs(recipe.input) do
table.insert(inputs, fstr("{{物品|%s}} %s", getEntry(input.element, {"ITEMS", "ROBOTS"}),
utils.specialUnit[input.element] and utils.specialUnit[input.element](input.amount)
or utils.kg2str(input.amount, 2)))
end
local outputs = {}
for _, output in ipairs(recipe.output) do
table.insert(outputs, fstr("{{物品|%s}} %s", getEntry(output.element, {"ITEMS", "ROBOTS"}),
utils.specialUnit[output.element] and utils.specialUnit[output.element](output.amount)
or utils.kg2str(output.amount, 2)))
end
if #inputs == 0 or #outputs == 0 then
timeSlice = timeSlice .. (#inputs == 0 and "产生:" or "消耗:")
else
timeSlice = timeSlice .. ":"
end
table.insert(desc, timeSlice)
if #inputs > 0 then
table.insert(desc, table.concat(inputs, " + "))
end
if #outputs > 0 then
table.insert(desc, fstr("%s%s", arrow, table.concat(outputs, " + ")))
end
table.insert(out, table.concat(desc, "<wbr>"))
end
return table.concat(out, "<br>")
end
return p