Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Style guide
Special
uploadwizard
Languages
Language links are at the top of the page across from the title.
BTA-Mirror
Search
Search
English
Create account
Log in
Personal tools
Dark mode
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Module:Grid
Module
Discussion
English
Read
Edit source
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit source
View history
General
What links here
Related changes
Special pages
Page information
Get shortened URL
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
--<syntaxhighlight lang="lua"> local p = {} -- Individual cell function p.grid(item) if (item == nil) then return { } end local iLink = nil local iFill = nil --[[for fluid_cell implementation]] local iNum= math.floor( string.match(item, ',%s*(%d+)' ) or 0 ) local iName = string.sub(string.match(item, '.+,') or item..' ', 1, -2) local tooltip = string.match(item, '%[.+%]') if tooltip ~= nil then iName = string.sub(iName, string.len(tooltip)+1) tooltip = string.sub(tooltip,2,-2) end local hasPercentage = string.match(item, "[%%]") local aliases = mw.loadData('Module:Grid/Aliases') if tooltip == nil then if aliases[iName] then tooltip = aliases[iName] end else if aliases[tooltip] then tooltip = aliases[tooltip] end end if(iName:find("~")) then iLink = string.match(iName, '~(.+)') iName = string.match(iName, '(.+)~') end if(iName:find("%^")) then local fhandler = mw.loadData('Module:Grid/FluidHandler') iFill = string.match(iName, '%^(.+)') iName = string.match(iName, '(.+)%^') if fhandler[iFill] then iFill = fhandler[iFill] --[[rename]] else --[[invalid fluid, so remove it]] iFill = nil end if fhandler[iName] then iName = fhandler[iName] --[[rename]] else --[[invalid container, so remove fluid]] iFill = nil end end paras = { } paras["name"] = iName if(iLink ~= nil) then paras["link"]=iLink end if(iFill ~= nil) then paras["fill"]=iFill end if(iNum > 1 or hasPercentage) then paras["number"]=iNum end if(hasPercentage) then paras["percent"]="x" end if(tooltip ~= nil) then paras["tooltip"]=tooltip 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.tank(f) local args = f if f == mw.getCurrentFrame() then args = f:getParent().args end local link = args.link or '' local tank = args.tank or '' local left = args.left or '' local width = args.width or '24' local top = tonumber(args.top) or 92 local height = tonumber(args.height) or 94 local max = tonumber(args.max) or 10000 local fill = tonumber(args.fill) or 0 if fill > max then top = top - height up = height down = height * 2 else top = top - ((height/max)*fill) up = (height/max)*fill down = height + ((height/max)*fill) end local div = mw.html.create('div') div :addClass('tooltip') :css('left', left .. 'px') :css('top', tostring(top) .. 'px') :css('position', 'absolute') :css('width', width .. 'px') :css('height', tostring(height) .. 'px') :css('clip', 'rect(' .. tostring(up) .. 'px,' .. tostring(width) ..'px,' .. tostring(down) .. 'px,0px)') :attr('title', tank) :wikitext('[[File:Tank ' .. tank .. '.png|' .. tostring(width) .. 'px|link=' .. link .. '|alt=]]') return tostring( div ) 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.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 function p.turningNumber(number) if number == '1' then return 22 elseif number == '2' then return 44 elseif number == '3' then return 66 elseif number == '4' then return 88 else return 110 end end function p.turningBarrel(number,t) if t == nil then if number == '1' then return 38 elseif number == '2' then return 46 elseif number == '3' then return 52 elseif number == '4' then return 58 else return 64 end else if number == '1' then return 26 elseif number == '2' then return 20 elseif number == '3' then return 14 elseif number == '4' then return 6 else return 0 end end end function p.turning(f) local args = f if f == mw.getCurrentFrame() then args = f:getParent().args end local gridArgs = {Output=p.cell(f, args.Output)} if args.float or args.Float then gridArgs.float = args.float or args.Float end if args.nobreak then gridArgs.nobreak = args.nobreak end if args.Output == nil then return f:expandTemplate{title='Grid/Turning Table/Return', args=gridArgs} else gridArgs.Output = args.Output end local valid = {Drill='Iron', Handle='Iron', Axle='Iron', Wood='Wooden', Wooden='Wooden'} if valid[args.Output] == nil then return f:expandTemplate{title='Grid/Turning Table/Return', args=gridArgs} else gridArgs.Type = valid[args.Output] end if gridArgs.Type == 'Wooden' then bounce = 3 else bounce = 5 end gridArgs.top = 70 if args.Layout ~= nil and args.Layout:find(',') then local layout = mw.text.split(args.Layout,"%g*,%g*") for i = 1, #layout do if tonumber(layout[i]) > bounce then layout[i] = tostring(bounce) elseif tonumber(layout[i]) < 1 then layout[i] = "1" end if tonumber(layout[i]) == 5 then gridArgs.top = 71 end end gridArgs.n1 = p.turningNumber(layout[1]) gridArgs.b1 = p.turningBarrel(layout[1]) gridArgs.b1t = p.turningBarrel(layout[1],1) gridArgs.n2 = p.turningNumber(layout[2]) gridArgs.b2 = p.turningBarrel(layout[2]) gridArgs.b2t = p.turningBarrel(layout[2],1) gridArgs.n3 = p.turningNumber(layout[3] or bounce) gridArgs.b3 = p.turningBarrel(layout[3] or bounce) gridArgs.b3t = p.turningBarrel((layout[3] or bounce),1) gridArgs.n4 = p.turningNumber(layout[4] or bounce) gridArgs.b4 = p.turningBarrel(layout[4] or bounce) gridArgs.b4t = p.turningBarrel((layout[4] or bounce),1) gridArgs.n5 = p.turningNumber(layout[5] or bounce) gridArgs.b5 = p.turningBarrel(layout[5] or bounce) gridArgs.b5t = p.turningBarrel((layout[5] or bounce),1) else barrelbounce = p.turningBarrel(bounce) barreltbounce = p.turningBarrel(bounce,1) bounce = p.turningNumber(bounce) gridArgs.n1 = bounce gridArgs.b1 = barrelbounce gridArgs.b1t = barreltbounce gridArgs.n2 = bounce gridArgs.b2 = barrelbounce gridArgs.b2t = barreltbounce gridArgs.n3 = bounce gridArgs.b3 = barrelbounce gridArgs.b3t = barreltbounce gridArgs.n4 = bounce gridArgs.b4 = barrelbounce gridArgs.b4t = barreltbounce gridArgs.n5 = bounce gridArgs.b5 = barrelbounce gridArgs.b5t = barreltbounce end return f:expandTemplate{title='Grid/Turning Table/Return', args=gridArgs} end return p --</syntaxhighlight>
Summary:
Please note that all contributions to BTA-Mirror may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
BTA-Mirror:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Templates used on this page:
Template:Doc/end
(
edit
)
Template:Doc/start
(
edit
)
Template:Fullurl
(
edit
)
Template:Template link
(
edit
)
Template:Template link
(
edit
)
Template:Yesno
(
edit
)
Module:Grid/doc
(
edit
)
Toggle limited content width