MCBBS Wiki欢迎您共同参与编辑!在参与编辑之前请先阅读Wiki方针

如果在编辑的过程中遇到了什么问题,可以去讨论板提问。

为了您能够无阻碍地参与编辑 未验证/绑定过邮箱的用户,请尽快绑定/验证

MCBBS Wiki GitHub群组已上线!

您可以在回声洞中发表吐槽!

服务器状态监控。点击进入

本站由MCBBS用户自行搭建,与MCBBS及东银河系漫游指南(北京)科技有限公司没有从属关系。点此了解 MCBBS Wiki 不是什么>>

模块:OreDictionary

来自MCBBS Wiki
Litwak913留言 | 贡献2022年8月16日 (二) 20:44的版本 (创建页面,内容为“--[[ {{#invoke:OreDictionary|icon|ask得到的array类型的返回}}(暂时不可用) {{#invoke:OreDictionary|imgbox|ask得到的array类型的返回|高=|宽=|上=|下=|数量=}} ]] local od = {} function splitStr(str, delimeter) local find, sub, insert = string.find, string.sub, table.insert local res = {} local start, start_pos, end_pos = 1, 1, 1 while true do start_pos, end_pos = find(str, delimeter, start, true) if not…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳到导航 跳到搜索
本模块引自我的世界玩家社区Wiki,遵循CC BY SA 3.0协议;此文档并非引用内容

在“我的世界玩家社区Wiki”,此模块主要配合“图片格子/矿词”模板“动态显示”模板使用。

利用语义化维基扩展(SMW),于页面上写入某个物品/方块的矿词,然后在使用时以数组形式打印出来,经由这个模块处理为“图片格子”送入“动态显示”。



--[[
{{#invoke:OreDictionary|icon|ask得到的array类型的返回}}(暂时不可用)
{{#invoke:OreDictionary|imgbox|ask得到的array类型的返回|高=|宽=|上=|下=|数量=}}
]]
local od = {}

function splitStr(str, delimeter)
    local find, sub, insert = string.find, string.sub, table.insert
    local res = {}
    local start, start_pos, end_pos = 1, 1, 1
    while true do
        start_pos, end_pos = find(str, delimeter, start, true)
        if not start_pos then
            break
        end
        insert(res, sub(str, start, start_pos - 1))
        start = end_pos + 1
    end
    insert(res, sub(str,start))
    return res
end

function od.imgbox(frame)
	local new_args = od._getParameters( frame.args,{'name','高','宽','上','左','数量'} );
	local fname = new_args['name'] or '';
	local hei = new_args['高'] or '';
	local wid = new_args['宽'] or '';
	local up = new_args['上'] or '';
	local down = new_args['左'] or '';
	local count = new_args['数量'] or '';
	local temptable = splitStr(fname,',');
	local tl = '{{动态显示|style=|高=' .. hei .. '|宽=' .. wid;
	local tempstring = '';
	for i = 1, #temptable do
		tempstring = '|{{图片格子/元模板|高=' .. hei .. '|宽=' .. wid .. '|数量=' .. count .. '|上=' .. up .. '|左=' .. down .. '|' .. temptable[i] .. '.png|链接=' .. temptable[i] .. '}}';
		tl = tl .. tempstring;
	end
	tl = tl .. '}}';
	tl = frame:preprocess(tl);
	return tl
end

function od.icon(frame)
	local new_args = od._getParameters( frame.args, { 'name' } );
	local fname = new_args['name'] or '';
	return fname
end

function od._getParameters( frame_args, arg_list )
    local new_args = {};
    local index = 1;
    local value;
    
    for i,arg in ipairs( arg_list ) do
        value = frame_args[arg]
        if value == nil then
            value = frame_args[index];
            index = index + 1;
        end
        new_args[arg] = value;
    end
    
    return new_args;
end 

return od