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

мНет описания правки
мНет описания правки
Строка 1: Строка 1:
local p = {}
local p = {}


local cache = mw.cache.new('EntitySpriteCache')
local cache = nil
if mw.cache and mw.cache.new then
    cache = mw.cache.new('EntitySpriteCache')
else
    cache = {
        get = function(key)
            return nil
        end,
        set = function(key, value)
        end
    }
end


-- Переменные для кэширования в пределах модуля
-- Переменные для кэширования в пределах модуля
Строка 70: Строка 81:
end
end


-- Загрузка JSON-данных с кэшированием через mw.cache
-- Загрузка JSON-данных с кэшированием через mw.cache или переменными модуля
local function loadData(filePath)
local function loadData(filePath)
     if cachedData then
     if cachedData then
Строка 203: Строка 214:
         entry = dataById[tostring(id)]
         entry = dataById[tostring(id)]
     else
     else
        -- Если индекс по ID не создан, перебираем данные
         for _, item in ipairs(data) do
         for _, item in ipairs(data) do
             if tostring(item.id) == tostring(id) then
             if tostring(item.id) == tostring(id) then
Строка 257: Строка 267:
         return nil
         return nil
     elseif param == "image" and secondaryParam then
     elseif param == "image" and secondaryParam then
        -- Используем индекс по ID, чтобы не перебирать весь массив
         if dataById and dataById[tostring(secondaryParam)] then
         if dataById and dataById[tostring(secondaryParam)] then
             local entry = dataById[tostring(secondaryParam)]
             local entry = dataById[tostring(secondaryParam)]