Module:Inventory slot/Aliases/Table: Difference between revisions

From Modded Wiki
Jump to navigation Jump to search
No edit summary
Well it's not that slow, but the table is still ridiculously large. Doesn't seem worth having.
Line 6: Line 6:
local keys = {}
local keys = {}
for i in pairs( aliases ) do
for i in pairs( aliases ) do
table.insert( keys, i )
-- 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
end
table.sort( keys )
table.sort( keys )

Revision as of 05:33, 21 August 2015

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