Модуль:БлокСетка
Материал из Playzone Minecraft Wiki
Версия от 16:26, 22 июля 2016; NickTheRed37 (обсуждение) (Перевод на спрайты новой реализации, внедрение нескольких особенностей, взятых из этой версии англоязычного модуля.)
Для документации этого модуля может быть создана страница Модуль:БлокСетка/doc
local p = {} function p.grid( f ) local args = f.args or f if f == mw.getCurrentFrame() and f.args[1] == nil then args = f:getParent().args end local rows = {} local scale = tonumber(args["масштаб"]) or 1 if scale == 0 then scale = 1 end local size = 16 * scale local sprite = require('Модуль:Спрайт').sprite local cats = {} local keys = args.keys or args for k, v in ipairs( args ) do local row = {} for v2 in mw.text.gsplit( v:gsub( '^%s-\n+', '' ):gsub( '\n+%s-$', '' ), '' ) do if mw.text.trim( v2 ) == '' or keys[v2] == 'воздух' then table.insert( row, ' style="width:' .. size .. 'px;height:' .. size .. 'px" | ' ) else local icon, category = sprite{keys[v2], ["настройки"]="БлокСпрайт", ["масштаб"]=scale} table.insert(row, icon) table.insert(cats, category) end end table.insert( rows, table.concat( row, ' || ' ) ) end local spacing = tonumber(args["промежутки"] or '') or 0 return '{| cellspacing="' .. spacing .. '" cellpadding="0" style="line-height:0"\n|' .. table.concat( rows, '\n|-\n| ' ) .. '\n|}' .. table.concat(cats) end return p