模块:Utils
来自Mindustry中文wiki
用途
供区块页面显示目标和波次列表。
renderGoals
命名参数“是否启用目标栏”非空时显示;顺序参数以目标、注释成对传入。
renderWaves
命名参数“是否启用波次栏”非空时显示。使用波次1、波次2等连续编号;缺少一个编号时停止读取。单组格式为单位名称*数量,各组可用英文逗号、中文逗号、顿号或分号分隔,乘号也接受 ×、x、X。
{{#invoke:Utils|renderWaves|是否启用波次栏=是|波次1=尖刀*1,星辉*2|波次2=尖刀×3}}
未知名称或格式错误显示提示,不创建伪词条链接。数量为正整数。
local p = {}
-- 辅助函数:去除字符串尾部的所有空白字符(空格、换行、回车等)
local function trimTrailing(str)
if str then
return str:gsub("%s+$", "")
end
return str
end
-- 条件函数,用法:{{#invoke:utils|ifeq|条件|为真输出|为假输出}}
function p.ifeq(frame)
if frame.args[1] == True then
return frame.args[2]
else
return frame.args[3]
end
end
-- 一个用来打表的函数,会自动适配内容数量,用法:{{#invoke:utils|row|目标1|注释1|...}}
function p.row(frame)
local args = frame.args
local cells = {}
local i = 1
while true do
local val1 = args[i]
if val1 == nil then break end
val1 = trimTrailing(val1)
i = i + 1
local val2 = args[i]
if val2 == nil then break end
val2 = trimTrailing(val2)
table.insert(cells,val1.." || "..val2)
i = i + 1
end
if #cells == 0 then return "no arg" end
return "|-\n| " .. table.concat(cells, "\n|-\n| ")
end
return p
