Модуль:Entity Sprite/all: различия между версиями

Нет описания правки
Нет описания правки
Строка 16: Строка 16:
local parts = {}
local parts = {}


if entry.sprite then
local function addField(name, value)
table.insert(parts, "sprite=" .. normalizeSpritePath(entry.sprite))
if value ~= nil then
table.insert(parts, name .. "=" .. tostring(value))
end
end
end
addField("sprite", normalizeSpritePath(entry.sprite))
addField("state", entry.state)
addField("scale", entry.scale)
addField("enableOverrideDir", entry.enableOverrideDir)
addField("overrideDir", entry.overrideDir)


if entry.layers and type(entry.layers) == "table" then
if entry.layers and type(entry.layers) == "table" then
Строка 27: Строка 35:


for k, v in pairs(layer) do
for k, v in pairs(layer) do
layerParts[#layerParts+1] = k .. "=" .. tostring(v)
if type(v) ~= "table" then
layerParts[#layerParts + 1] = k .. "=" .. tostring(v)
end
end
end


Строка 34: Строка 44:
end
end


table.sort(layers)  
table.sort(layers)
table.insert(parts, "layers=" .. table.concat(layers, "|"))
table.insert(parts, "layers=" .. table.concat(layers, "|"))
end
end


table.sort(parts)
return table.concat(parts, ";")
return table.concat(parts, ";")
end
local function getSpritePath(entry)
return normalizeSpritePath(entry.sprite)
end
end


Строка 50: Строка 57:
if entry.layers and type(entry.layers) == "table" then
if entry.layers and type(entry.layers) == "table" then
for _, layer in ipairs(entry.layers) do
for _, layer in ipairs(entry.layers) do
if layer.visible ~= false then
if layer.visible ~= false and layer.state then
table.insert(result, {
table.insert(result, {
state = tostring(layer.state or entry.state or ""),
state = tostring(layer.state),
sprite = normalizeSpritePath(layer.sprite or entry.sprite)
sprite = normalizeSpritePath(layer.sprite or entry.sprite)
})
})
Строка 59: Строка 66:
elseif entry.state and entry.sprite then
elseif entry.state and entry.sprite then
table.insert(result, {
table.insert(result, {
state = tostring(entry.state or ""),
state = tostring(entry.state),
sprite = normalizeSpritePath(entry.sprite)
sprite = normalizeSpritePath(entry.sprite)
})
})
Строка 65: Строка 72:


return (#result > 0) and result or nil
return (#result > 0) and result or nil
end
local function getSpritePath(entry)
return normalizeSpritePath(entry.sprite)
end
end