Module:Grid
Jump to navigation
Jump to search
This module is a WIP (work in progress), but is still being called by {{Grid/Crafting Table}}
, so any changes should be tested to avoid inconvenience.
Related Links[edit]
- Module:Grid/Aliases - list of aliases to automatically fix certain grid tooltips
- Template:Grid - the wiki template that this expands into
The above documentation is transcluded from Module:Grid/doc. (edit | history)
local p = {} -- Individual cell function p.grid(item) if (item == nil) then return { } end local iLink = 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 iLink = string.match(iName, '~([%a%s-]+)') iName = string.match(iName, '([%a%s-]+)~') end paras = { } paras["name"] = iName if(iLink ~= nil) then paras["link"]=iLink 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\">' if frame == 'Blank' or frame == 'blank' then text = text .. '' else text = text .. f:expandTemplate{ title='Grid', args = p.grid(frame) } end 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.gc ( f ) local args = f if f == mw.getCurrentFrame() then args = f:getParent().args end return p.cell(f, (args[1] or args["name"])) end function p.craftingTable( f ) local args = f if f == mw.getCurrentFrame() then args = f:getParent().args 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), Break=args.Break } 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.furnace( f ) local args = f if f == mw.getCurrentFrame() then args = f:getParent().args end local gridArgs = { Input=p.cell(f, (args.Input or args.Top)), Fuel=p.cell(f, (args.Fuel or args.Bottom)), Output=p.cell(f, args.Output), } return f:expandTemplate{ title='Crafting/Furnace', args= gridArgs} end return p