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

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


-- Обновляем основную функцию для использования индекса
function p.main(frame)
function p.main(frame)
     local param = frame.args[1]
     local param = frame.args[1]
Строка 177: Строка 178:
     end
     end


     -- Создаём индекс путей
     -- Создаём индекс путей для быстрого поиска
     local spritePathIndex = createSpritePathIndex(data)
     local spritePathIndex = createSpritePathIndex(data)


Строка 183: Строка 184:
         return generateRepeatTemplate(data)
         return generateRepeatTemplate(data)
     elseif param == "path" and secondaryParam then
     elseif param == "path" and secondaryParam then
         for _, entry in ipairs(data) do
         -- Используем индекс для быстрого поиска
            local template = generateTemplate(entry, param, secondaryParam, data, spritePathIndex)
        local entryId = spritePathIndex[secondaryParam]
            if template then
        if entryId then
                 return template
            -- Находим соответствующий шаблон
            for _, entry in ipairs(data) do
                if entry.id == entryId then
                    return generateTemplate(entry, param, secondaryParam, data, spritePathIndex)
                 end
             end
             end
         end
         end