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

мНет описания правки
мНет описания правки
Строка 9: Строка 9:
end
end


-- Функция получение пути спрайта
-- Функция получения пути спрайта
local function getSpritePath(entry)
local function getSpritePath(entry)
     if entry.Sprite and entry.Sprite.sprite then
     if entry.Sprite and entry.Sprite.sprite then
Строка 25: Строка 25:
end
end


-- Функция генерация шаблона по записи
-- Функция получения state
local function getSpriteState(entry)
    if entry.Sprite and entry.Sprite.state then
        return entry.Sprite.state
    elseif entry.Sprite and entry.Sprite.layers then
        for _, layer in pairs(entry.Sprite.layers) do
            if layer.state then
                return layer.state
            end
        end
    end
    return nil
end
 
-- Функция генерации шаблона по записи
function p.getSprite(frame)
function p.getSprite(frame)
     local id = frame.args[1]
     local id = frame.args[1]
Строка 51: Строка 65:
             if entry.id == id then
             if entry.id == id then
                 local sprite = getSpritePath(entry)
                 local sprite = getSpritePath(entry)
                 return sprite or "Ошибка: спрайт не найден"
                 local state = getSpriteState(entry)
                if sprite then
                    if state then
                        return sprite .. " (state: " .. state .. ")"
                    else
                        return sprite
                    end
                else
                    return "Ошибка: спрайт не найден"
                end
             end
             end
         end
         end