Módulo:Schematic

Revisión del 14:38 20 abr 2014 de MinedNugget (discusión | contribs.) (Protegió «Módulo:Schematic» ([Editar=Solo permitir administradores] (indefinido) [Pueden trasladar=Solo permitir administradores] (indefinido)))
(difs.) ← Revisión anterior | Revisión actual (difs.) | Revisión siguiente → (difs.)

local p = {} function p.table( f ) local args = f.args if args[1] == nil then args = f:getParent().args end local caption = args.caption or local captionstyle = args.captionstyle or local clear = args.clear or local float = args.float or local size = tonumber( args.size ) or 32 local style = args.style or local tablestyle = args.tablestyle or local sprite = require( 'Module:Sprite' ).base local ids = mw.loadData( 'Module:Schematic/IDs' ) local titles = mw.loadData( 'Module:Schematic/Titles' ) local isTable = false if args[2] or ~= then isTable = true end

if size ~= 32 then tablestyle = 'font-size:' .. size .. 'px;' .. tablestyle end

local cols = 0 local maxcols = 0 local schematic = {} local title = for _, cell in ipairs( args ) do cell = mw.text.trim( cell ) if isTable and cell ~= '-' then cols = cols + 1 if cols > maxcols then maxcols = cols end end

if cell == or cell == 'air' then if isTable then table.insert( schematic, '|' ) else table.insert( schematic, '
' ) end elseif isTable and cell == '-' then cols = 0

table.insert( schematic, '|-' ) else local layers = {} title = {} for layer in mw.text.gsplit( cell, '%s*+%s*' ) do local pos = ids[layer] if pos then table.insert( layers, sprite{ settings = 'Schematic/Settings', pos = pos, scale = size / 16 } )

if titles[layer] then table.insert( title, 1, titles[layer] ) end else table.insert( layers, '' .. layer .. '' ) end end if args.text then table.insert( layers, '' .. args.text .. '' ) end

title = table.concat( title, ' over ' ) layers = table.concat( layers, ) if isTable then if layers ~= then

layers = '| title="' .. title .. '" |

' .. layers .. '

'

else layers = '|' end end

table.insert( schematic, layers ) end end

local attr = 'class="schematic" style="' .. tablestyle .. '"' if isTable then table.insert( schematic, 1, '{|' .. attr ) table.insert( schematic, '|}' ) else if #schematic == 0 then table.insert( schematic, '
' ) end table.insert( schematic, 1, '' ) table.insert( schematic, '' ) end

local out if caption ~= or float ~= then if float == then float = 'right' end if clear == then clear = 'none' end

local captionwidth = maxcols * ( size + 1 ) + 1 if captionwidth < 182 then captionwidth = 182 end

if not args.nohelp and mw.title.getCurrentTitle().prefixedText ~= 'Help:Schematic' then caption = '' .. f:expandTemplate{ title = 'CommentSprite', args = { '1', link = 'Help:Schematic', title = 'Schematic help' } } .. '' .. caption end

out = {

'

', '
\n',

table.concat( schematic, '\n' ),

'\n
\n' .. caption .. '
', '
', '

'

} out = table.concat( out ) else if isTable then out = table.concat( schematic, '\n' ) else -- Inline schematic should be a single line out = table.concat( schematic ) end end out = out:gsub( ' style=""', ):gsub( ' title=""%s*|?', )

return out end return p