Module:Sprite: Difference between revisions

Jump to navigation Jump to search
No edit summary
No edit summary
 
(30 intermediate revisions by the same user not shown)
Line 2: Line 2:


p.main = function( frame )
p.main = function( frame )
return "Hello, world!"
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 image = frame.args['image']
local cellWidth = sheetWidth / noOfColumns
local cellHeight = sheetHeight / noOfRows
local outline = frame:getArgument('outline')
local imageClass
if outline ~= nil then
imageClass = "pixelart blackstroke"
else
imageClass = "pixelart"
end
local span = mw.html.create('span')
:cssText(
string.format(
[[
position: relative;
height: %dpx;
width: %dpx;
overflow: hidden;
display: inline-block;
vertical-align: middle;
]],
cellHeight * ratio,
cellWidth * ratio
)
)
:tag('span')
:cssText(
string.format(
[[
position: absolute;
height: %dpx;
width: %dpx;
top: %dpx;
left: %dpx;
]],
sheetHeight * ratio,
sheetWidth * ratio,
(offsetY - cellHeight * row) * ratio,
(offsetX - cellWidth * col) * ratio
)
)
:wikitext(string.format('[[%s|%dpx|class=pixelart]]', image, sheetWidth * ratio))
:done()
return tostring(span)
end
end


return p
return p

Latest revision as of 04:28, 31 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 image = frame.args['image']
	local cellWidth = sheetWidth / noOfColumns
	local cellHeight = sheetHeight / noOfRows
	local outline = frame:getArgument('outline')
	local imageClass
	if outline ~= nil then
		imageClass = "pixelart blackstroke"
	else
		imageClass = "pixelart"
	end
	local span = mw.html.create('span')
		:cssText(
			string.format(
				[[
					position: relative;
					height: %dpx;
					width: %dpx;
					overflow: hidden;
					display: inline-block;
					vertical-align: middle;
				]],
				cellHeight * ratio,
				cellWidth * ratio
			)
		)
		:tag('span')
		:cssText(
			string.format(
				[[
					position: absolute;
					height: %dpx;
					width: %dpx;
					top: %dpx;
					left: %dpx;
				]],
				sheetHeight * ratio,
				sheetWidth * ratio,
				(offsetY - cellHeight * row) * ratio,
				(offsetX - cellWidth * col) * ratio
			)
		)
		:wikitext(string.format('[[%s|%dpx|class=pixelart]]', image, sheetWidth * ratio))
		:done()
	return tostring(span)
end

return p