Module:Sprite: Difference between revisions

Jump to navigation Jump to search
no edit summary
(Added Custom Sprite Support)
No edit summary
(11 intermediate revisions by the same user not shown)
Line 5: Line 5:
local types = {
local types = {
inventory = [[Module:InvSprite]],
inventory = [[Module:InvSprite]],
gm4 = [[Module:Gm4Sprite]],
effect = [[Module:EffectSprite]]
}
}


Line 25: Line 27:
url = f:expandTemplate{
url = f:expandTemplate{
title = 'FileUrl',
title = 'FileUrl',
args = { image}
args = {image}
}
}
}
}


setmetatable(t, {__index = file})
setmetatable(t, {__index = file})
return t
end
function getSpriteSheet( image )
if not(image) then return nil end
local f = mw.getCurrentFrame()
local t = {
url = f:expandTemplate{
title = 'SpriteSheet',
args = {image}
}
}
if t == "" then return nil end


return t
return t
Line 58: Line 76:


local size = image.width
local size = image.width


o = {
o = {
__source = {
__source = {
settings={
settings = {}
ids={[name]=1},
},
size = size,
__settings={
sheetsize = size,
size = size,
image = image
sheetsize = 1,
}
image = image,
sheetWidth = size,
tiles = 1,
name = name
}
}
}
}
setmetatable(o, {__index = self})
setmetatable(o, {__index = self})
o:load()
setmetatable(o.__settings, {__index=defaultSettings})
return o
return o
end
end
Line 82: Line 104:
scale = settings.scale,
scale = settings.scale,
autoScale = settings.autoscale,
autoScale = settings.autoscale,
image = settings.image or getImage(settings.imagename)
image = (settings.image and getImage(settings.image))
or (settings.spriteSheet and getSpriteSheet(settings.spriteSheet))
}
}


Line 126: Line 149:
function append(key, value) if value ~= nil then styles[#styles+1]=key .. ": " .. value end end
function append(key, value) if value ~= nil then styles[#styles+1]=key .. ": " .. value end end
local settings = self.__settings
local settings = self.__settings
-- has to be done first, otherwise the possition is overriden in chrome
if settings.image then
append("background", settings.image.url)
end


append ("background-size", settings.sheetWidth * settings.scale .. 'px auto')
append ("background-size", settings.sheetWidth * settings.scale .. 'px auto')
Line 139: Line 167:
local top = math.floor( pos / settings.tiles ) * settings.size * settings.scale
local top = math.floor( pos / settings.tiles ) * settings.size * settings.scale
append("background-position", '-' .. left .. 'px -' .. top .. 'px')
append("background-position", '-' .. left .. 'px -' .. top .. 'px')
if settings.image then
 
append("background", "url(" .. settings.image.url .. ")")
end


return table.concat( styles, "; " )
return table.concat( styles, "; " )
Line 159: Line 185:


sprite:addClass("sprite")
sprite:addClass("sprite")
sprite:addClass("masterTooltip")


local source = self.__source
local source = self.__source
Line 164: Line 191:
sprite:attr( "title", self.__settings.name )
sprite:attr( "title", self.__settings.name )


sprite:cssText( self:calculateStyles() )
local styles =  self:calculateStyles()
sprite:cssText( styles )
sprite:attr("data-styles", styles)


return sprite
return sprite
Bureaucrats, emailconfirmed, Interface administrators, staff, Administrators, translation-admin, translator, Widget editors
154

edits

Navigation menu