Difference between revisions of "Module:Grid"
Jump to navigation
Jump to search
KamranMackey (talk | contribs) (Gonna try & see if this works for Module:Grid. If not, Chocohead will just yell at me :D) |
KamranMackey (talk | contribs) (Undo revision 16430 by KamranMackey (talk)) |
||
Line 1: | Line 1: | ||
local p = {} | local p = {} | ||
-- Individual cell | -- Individual cell | ||
function p. | 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, '(.+),') | |||
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 | end | ||
function p. | |||
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 | 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 | end | ||
function p.craftingTable( f ) | function p.craftingTable( f ) | ||
local args = f | |||
if f == mw.getCurrentFrame() then | if f == mw.getCurrentFrame() then | ||
args = f:getParent().args | args = f:getParent().args | ||
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), | |||
Break=args.Break | |||
} | |||
return f:expandTemplate{ title='Crafting', args= gridArgs} | |||
end | end | ||
-- | --[=[ | ||
function p. | function p.carpenter( f ) | ||
local args = f | |||
if f == mw.getCurrentFrame() then | |||
args = f:getParent().args | args = f:getParent().args | ||
end | 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 | 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 | end | ||
--]=] | |||
function p.furnace( f ) | |||
function p. | |||
local args = f | |||
if f == mw.getCurrentFrame() then | |||
args = f:getParent().args | args = f:getParent().args | ||
end | 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), | |||
Break=args.Break | |||
} | |||
return f:expandTemplate{ title='Crafting/Furnace', args= gridArgs} | |||
end | end | ||
return p | return p |
Revision as of 06:13, 23 February 2015
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, '(.+),') 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), Break=args.Break } return f:expandTemplate{ title='Crafting/Furnace', args= gridArgs} end return p