Feed The Beast Wiki

Follow the Feed The Beast Wiki on Discord or Mastodon!

READ MORE

Feed The Beast Wiki
Advertisement

Documentation for this module may be created at Module:NIA/doc

local p = {}

p.items = function( f )
        local args = f.args or f
        if f == mw.getCurrentFrame() and args[1] == nil then
                args = f:getParent().args
        else
                f = mw.getCurrentFrame()
        end
        local text = ""
        for item in mw.text.gsplit(args[1], '%s*,%s*') do
                text = text .. f:callParserFunction('#icon', {item = item, size = 16, mod = args.mod})
        end
        return text
end

function shuffle(list)
	local indices = {}
	for i = 1, #list do
		indices[#indices+1] = i
	end
	local shuffled = {}
	for i = 1, #list do
		local index = math.random(#indices)
		local value = list[indices[index]]
		table.remove(indices, index)
		shuffled[#shuffled+1] = value
	end
	return shuffled
end

p.rand = function(f)
	local args = f.args or f
	if f == mw.getCurrentFrame() and args[1] == nil then
		args = f:getParent().args
	else
		f = mw.getCurrentFrame()
	end
	section = {}
	for item in mw.text.gsplit(args[1], "{{NI|") do
		item = item:gsub("{{,}}", ""):gsub("<!--.*-->", "")
		if item ~= "" then
			table.insert(section, "{{NI|" .. item)
		end
	end
	return table.concat(shuffle(section), "{{,}}") .. mw.text.encode(args[1])
end

return p
Advertisement