Module:Sprite: Difference between revisions
Jump to navigation
Jump to search
Auburnsummer (talk | contribs) No edit summary |
Auburnsummer (talk | contribs) No edit summary |
||
Line 7: | Line 7: | ||
local noOfRows = tonumber(frame.args['noOfRows']) | local noOfRows = tonumber(frame.args['noOfRows']) | ||
local noOfColumns = tonumber(frame.args['noOfColumns']) | local noOfColumns = tonumber(frame.args['noOfColumns']) | ||
local offsetX = tonumber(frame.args['offsetX']) * -1 | |||
local offsetY = tonumber(frame.args['offsetY']) * -1 | |||
local row = tonumber(frame.args['row']) - 1 | |||
local col = tonumber(frame.args['col']) - 1 | |||
local cellWidth = sheetWidth / noOfRows | local cellWidth = sheetWidth / noOfRows | ||
local cellHeight = sheetHeight / noOfColumns | local cellHeight = sheetHeight / noOfColumns | ||
Line 21: | Line 25: | ||
:tag('span') | :tag('span') | ||
:css({ | :css({ | ||
position = 'absolute' | position = 'absolute', | ||
height = tostring(sheetHeight * ratio) .. 'px', | |||
width = tostring(sheetWidth * ratio) .. 'px', | |||
top = (offsetY - cellHeight * row) * ratio, | |||
left = (offsetX - cellWidth * row) * ratio | |||
}) | }) | ||
:done() | :done() |
Revision as of 12:00, 27 May 2022
Documentation for this module may be created at Module:Sprite/doc
local p = {}
p.main = function( frame )
local ratio = tonumber(frame.args['ratio'])
local sheetWidth = tonumber(frame.args['sheetWidth'])
local sheetHeight = tonumber(frame.args['sheetHeight'])
local noOfRows = tonumber(frame.args['noOfRows'])
local noOfColumns = tonumber(frame.args['noOfColumns'])
local offsetX = tonumber(frame.args['offsetX']) * -1
local offsetY = tonumber(frame.args['offsetY']) * -1
local row = tonumber(frame.args['row']) - 1
local col = tonumber(frame.args['col']) - 1
local cellWidth = sheetWidth / noOfRows
local cellHeight = sheetHeight / noOfColumns
local span = mw.html.create('span')
:css({
position = 'relative',
height = tostring(cellHeight * ratio) .. 'px',
width = tostring(cellWidth * ratio) .. 'px',
overflow = 'hidden',
display = 'inline-block',
['vertical-align'] = 'middle'
})
:tag('span')
:css({
position = 'absolute',
height = tostring(sheetHeight * ratio) .. 'px',
width = tostring(sheetWidth * ratio) .. 'px',
top = (offsetY - cellHeight * row) * ratio,
left = (offsetX - cellWidth * row) * ratio
})
:done()
return tostring(span)
end
return p