Module:Grid

Revision as of 00:34, 29 May 2015 by Chocohead (talk | contribs) (Fixed little mistake)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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

local p = {}
-- Individual cell
function p.grid(item)

    if (item == nil) then return { } end
    
    iCaption = nil

    local iNum= math.floor( string.match(item, ',%s*(%d+)' ) or 0 )
    local iName = string.match(item, '([%a%s-&]+),')
    if(iName == nil) then iName = item end
    
    local hasPercentage = string.match(item, "[%%]")

    if(iName:find("~")) then
        iCaption = string.match(iName, '([%a%s-]+)~')
        iName = string.match(iName, '~([%a%s-]+)')
    end

    paras = { }
    
    paras["name"] = iName
    
    if(iCaption ~= nil) then paras["caption"]=iCaption end
    if(iNum > 1 or hasPercentage) then paras["number"]=iNum end
    if(hasPercentage) then paras["percent"]="x" end
    return paras
    
end

-- Gets a cell or animated cell
function p.cell(f, item) 
    
    if (item == nil) then return '' end
    
    if (item:find(';')) then 
        local text = '<div class=\"animated-grids\">'
 
        
        for frame in mw.text.gsplit( item, '%s*;%s*' ) do
            
            text = text .. '<span class=\"animated-grid\">'
            text = text .. f:expandTemplate{ title='Grid', args = p.grid(frame) }
            text = text .. '</span>'
            
        end

        text = text .. '</div>'
        
        return text
    end
    

   
    
    
    return f:expandTemplate{ title='Grid', args = p.grid(item) }
end

function p.liquid(f, item) 
    
    if (item == nil) then return '' end
    
    local text = ''
    
    for i=1,3,1 do
        text = text .. f:expandTemplate{ title='Grid', args = p.grid(item) }
    end

    return text
end


function p.craftingTable( f )

    local args = f
    
	if f == mw.getCurrentFrame() then
		args = f:getParent().args
	end

    local sizeW = 3;
    local sizeH = 3;
    
    if(args.Size ~= nil and string.find(args.Size, 'Min') ~= nil) then
        
        if(args.C1 ~= nil or args.C2 ~= nil or args.C3 ~= nil) then
            sizeH = 3
        elseif(args.B1 ~= nil or args.B2 ~= nil or args.B3 ~= nil) then
            sizeH = 2
        else
            sizeH = 1
        end
        
        if(args.A3 ~= nil or args.B3 ~= nil or args.C3 ~= nil) then
            sizeW = 3
        elseif(args.A2 ~= nil or args.B2 ~= nil or args.C2 ~= nil) then
            sizeW = 2
        else
            sizeW = 1
        end
    
    end
    
    local gridArgs = { 
    
        A1=p.cell(f, args.A1),
        A2=p.cell(f, args.A2),
        A3=p.cell(f, args.A3),
        
        B1=p.cell(f, args.B1),
        B2=p.cell(f, args.B2),
        B3=p.cell(f, args.B3),
        
        C1=p.cell(f, args.C1),
        C2=p.cell(f, args.C2),
        C3=p.cell(f, args.C3),
        
        Output=p.cell(f, args.Output),
        
    }
    
    if(sizeH < 3) then gridArgs.HideRowC = "true" end
    if(sizeH < 2) then gridArgs.HideRowB = "true" end
    if(sizeW < 3) then gridArgs.HideColumn3 = "true" end
    if(sizeW < 2) then gridArgs.HideColumn2 = "true" end

   return f:expandTemplate{ title='Crafting', args= gridArgs}

end

function p.carpenter( f )

    local args = f
    
    if f == mw.getCurrentFrame() then
		args = f:getParent().args
	end
    
    local gridArgs = { 
        
        Liquid=p.liquid(f, args.Liquid),
    
        A1=p.cell(f, args.A1),
        A2=p.cell(f, args.A2),
        A3=p.cell(f, args.A3),
        
        B1=p.cell(f, args.B1),
        B2=p.cell(f, args.B2),
        B3=p.cell(f, args.B3),
        
        C1=p.cell(f, args.C1),
        C2=p.cell(f, args.C2),
        C3=p.cell(f, args.C3),
        
        Output=p.cell(f, args.Output),
        
    }

   return f:expandTemplate{ title='CraftingCarpenter', args= gridArgs}

end

function p.centrifuge( f )

    local args = f
    
    if f == mw.getCurrentFrame() then
    	args = f:getParent().args
	end
    
    local gridArgs = { 
        
        Input=p.cell(f, args.Input),
        
        Output1=p.cell(f, args.Output1),
        Output2=p.cell(f, args.Output2),
        Output3=p.cell(f, args.Output3)
    }

   return f:expandTemplate{ title='CraftingCentrifuge', args= gridArgs}

end

function p.incubator( f )

    local args = f
    
	if f == mw.getCurrentFrame() then
		args = f:getParent().args
	end

    local gridArgs = { 
        Item=p.cell(f, args.Item),
        Liquid=p.liquid(f, args.Liquid),
        Output=p.cell(f, args.Output),
        LiquidOutput=p.liquid(f, args.LiquidOutput)
    }


   return f:expandTemplate{ title='CraftingIncubator', args= gridArgs}

end

function p.furnace( f )

    local args = f
    
    if f == mw.getCurrentFrame() then
		args = f:getParent().args
	end

    local gridArgs = { 
        Input=p.cell(f, args.Input),
        Output=p.cell(f, args.Output),
    }


   return f:expandTemplate{ title='CraftingFurnace', args= gridArgs}

end


return p
Cookies help us deliver our services. By using our services, you agree to our use of cookies.

Need wiki hosting?

Do you need a wiki for your Minecraft mod/gaming wiki? We'll host it for free! Contact us.

Other wikis

Indie-game wikis
Powered by Indie Wikis