Feed The Beast Wiki

Follow the Feed The Beast Wiki on Discord or Mastodon!

READ MORE

Feed The Beast Wiki
Register
(Idiot proof, that way lowercase gets parsed to uppercase)
(or case, for null checks >.<)
Line 28: Line 28:
 
 
 
local mods = require( [[Module:Mods]] )
 
local mods = require( [[Module:Mods]] )
local mod = mods.getData(string.upper(args.mod)) or { abbr="", mod="", name="", localised="" }
+
local mod = mods.getData(string.upper(args.mod or '')) or { abbr="", mod="", name="", localised="" }
 
 
 
local link = args.link or ''
 
local link = args.link or ''

Revision as of 16:44, 13 July 2015

Documentation for this module may be created at Module:Grid/doc

local p = {}
p.cell = function( f )
        local args = f.args or f
        if f == mw.getCurrentFrame() and args[1] == nil then
                args = f:getParent().args
        else
                f = mw.getCurrentFrame()
        end
        args = require( [[Module:ProcessArgs]] ).norm( args )
        
        local item = args[1]
        
        local body = mw.html.create( 'span' ):addClass( 'grid' ):css{ ['vertical-align'] = args.align }
        if args['no-bg'] then
                body:addClass( 'grid-plain' )
        end
        if args.class then
                body:addClass( args.class )
        end
        if args.style then
                body:cssText( args.style )
        end
        
        if not item then
                body:tag( 'br' )
                return tostring( body )
        end
        
        local mods = require( [[Module:Mods]] )
        local mod = mods.getData(string.upper(args.mod or '')) or { abbr="", mod="", name="", localised="" }
        
        local link = args.link or ''
        if link:lower() == 'none' or link:lower() == 'false' then
                link = nil
        else
                if link == '' then
                        link = item
                        if mod.link and ( args.dis or '' ) == '' then
                                link = link .. ' (' .. mod.link .. ')'
                        end
                end
                body:wikitext( '[[', link, require( [[Module:Language]] ).link(), '|' )
        end
        
        local icon = body:tag( 'span' )
        local title = args.title or args.tooltiptext
        if not title then
                title = item
        elseif title:lower() == 'none' then
                title = ''
        elseif title:match( '&' ) then
                body:attr( 'data-minetip-title', title )
                
                title = title:gsub( '&[0-9a-fk-or]', '' )
                if title == '' then
                        title = item
                end
        end
        ( link and icon or body ):attr{ title = title }
        body:attr{ ['data-minetip-text'] = args.desc }
        
        icon:wikitext( f:callParserFunction( '#icon', { item = item, mod = mod.abbr } ) )
        
        local num = tonumber( args[2] or 1 )
        if num and num > 1 and num < 1000 then
                local number = icon:tag( 'span' ):addClass( 'grid-number' ):wikitext( num )
                if args.numstyle then
                        number:cssText( args.numstyle )
                end
        end
        
        if link then
                body:wikitext( ']]' )
        end
        
        return tostring( body )
end
return p