Module:Block structure renderer

Jump to navigation Jump to search

Implements {{Block structure renderer}}.

[view] [edit] [history] [refresh]The above documentation is transcluded from Module:Block structure renderer/doc.
local p = {}

function p.createTag(f)
	local calculator = require('Module:Calculator')
	local args = f
	local frame = mw.getCurrentFrame()
	if f == frame then
		args = require('Module:ProcessArgs').merge(true)
	end
	
	local calculatorArgs = {
		'blockStructureRenderer',         -- calculator name
		['background-color'] = '#808080', -- default background color
		['background-alpha'] = '128'      -- default background alpha
	}
	local foundBlocks = {}
	
	for k, v in pairs(args) do
		if type(k) == 'string' and mw.ustring.len(k) == 1 then
			table.insert(foundBlocks, k .. '=' .. v)
		elseif k == 'marks' then
			calculatorArgs['marks'] = v:gsub('%s', '')
		elseif k == 'camera' then
			calculatorArgs['camera-pos-data'] = v:gsub('%s', '')
		elseif k == 'orthographic' then
			calculatorArgs['orthographic'] = mw.text.trim(v)
		elseif k == 'animatedtexture' then
			calculatorArgs['animated-texture'] = mw.text.trim(v)
		elseif k == 'showinvisibleblocks' then
			calculatorArgs['show-invisible-blocks'] = mw.text.trim(v)
		elseif k == 'displaymarks' then
			calculatorArgs['display-marks'] = mw.text.trim(v)
		elseif k == 'backgroundcolor' then
			calculatorArgs['background-color'] = mw.text.trim(v)
		elseif k == 'backgroundalpha' then
			calculatorArgs['background-alpha'] = mw.text.trim(v)
		end
	end
	
	calculatorArgs['structure'] = args[1]:gsub('%s', '')
	calculatorArgs['blocks'] = frame:extensionTag('nowiki', table.concat(foundBlocks, ';'))
	
	return calculator.createTag(calculatorArgs)
end

return p