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
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
if args[1] ~= nil then
args["name"] = args[1]
end
if args["name"] == nil then
return ''
else
return p.cell(f, args)
end
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