Module:Inventory slot/Aliases/Table

From Modded Wiki
Revision as of 05:33, 21 August 2015 by minecraft>Majr (Well it's not that slow, but the table is still ridiculously large. Doesn't seem worth having.)
Jump to navigation Jump to search

Documentation for this module may be created at Module:Inventory slot/Aliases/Table/doc

local p = {}
p.table = function()
	local slot = require( [[Module:Inventory slot]] ).slot
	local aliases = mw.loadData( [[Module:Inventory slot/Aliases]] )
	
	local keys = {}
	for i in pairs( aliases ) do
		-- Skip the banner aliases (except "Any Banner"), as there are so
		-- many of them it causes the table to be excessively long
		if i == 'Any Banner' or not i:find( ' Banner$' ) then
			table.insert( keys, i )
		end
	end
	table.sort( keys )
	
	local tableRows = {
		' {| class="wikitable collapsible collapsed"',
		'! Alias !! class="collapse-button" | Output'
	}
	for _, key in ipairs( keys ) do
		local alias = aliases[key]
		
		local displayCell = {}
		for name in mw.text.gsplit( alias, '%s*;%s*' ) do
			-- Aliases are disabled in output for accuracy
			-- (as sub-aliases aren't meant to work) and performance
			table.insert( displayCell, slot{ name, noalias = true } )
		end
		
		table.insert( tableRows, '|<code>' .. key .. '</code>||' .. table.concat( displayCell ) )
	end
	table.insert( tableRows, '|}' )
	
	return table.concat( tableRows, '\n|-\n' )
end
return p