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

мНет описания правки
мНет описания правки
Строка 11: Строка 11:
-- Функция получения пути спрайта
-- Функция получения пути спрайта
local function getSpritePath(entry)
local function getSpritePath(entry)
     if entry.Sprite and entry.Sprite.sprite then
     local function findFieldInsensitive(tbl, fieldName)
         return entry.Sprite.sprite
        for key, value in pairs(tbl) do
     elseif entry.Icon and entry.Icon.sprite then
            if type(key) == "string" and mw.ustring.lower(key) == mw.ustring.lower(fieldName) then
        return entry.Icon.sprite
                return value
    elseif entry.Sprite and entry.Sprite.layers then
            end
        for _, layer in pairs(entry.Sprite.layers) do
        end
            if layer.sprite then
         return nil
                return layer.sprite
    end
 
     local spriteBlock = findFieldInsensitive(entry, "Sprite") or findFieldInsensitive(entry, "Icon")
    if spriteBlock then
        if spriteBlock.sprite then
            return spriteBlock.sprite
        elseif spriteBlock.layers then
            for _, layer in pairs(spriteBlock.layers) do
                if layer.sprite then
                    return layer.sprite
                end
             end
             end
         end
         end