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

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


-- Генерация шаблона по умолчанию
-- Генерация шаблона по умолчанию
local function generateDefaultTemplate(entry, params)
local function generateDefaultTemplate(data, params)
    local id = params.Id
    if not id or id == "" then
        return "Ошибка: Не указан ID."
    end
 
    -- Поиск записи с указанным ID
    local entry = nil
    for _, item in ipairs(data) do
        if tostring(item.id) == tostring(id) then
            entry = item
            break
        end
    end
 
    if not entry then
        return ""
    end
 
     local description = params.Description or ""
     local description = params.Description or ""
    local id = params.Id or ""
     local servers = params.Servers or ""
     local servers = params.Servers or ""
     local source = params.Source or ""
     local source = params.Source or ""
Строка 75: Строка 92:
     local tags = params.Tags or ""
     local tags = params.Tags or ""
     local licensing = params.Licensing or "CC-BY-SA-3.0"
     local licensing = params.Licensing or "CC-BY-SA-3.0"
    if not entry.Sprite or not entry.Sprite.sprite then
        return ""
    end


     if not path or path == "" then
     if not path or path == "" then
         path = "Resources/Textures/" .. id.entry.Sprite.sprite
         path = "Resources/Textures/" .. entry.Sprite.sprite
     end
     end


Строка 99: Строка 120:
function p.main(frame)
function p.main(frame)
     local param = frame.args[1]
     local param = frame.args[1]
    local data = loadData('User:IanComradeBot/prototypes/entity sprite.json')
    if not data or type(data) ~= 'table' then
        return 'Ошибка: Невозможно загрузить данные из JSON.'
    end


     if not param then
     if not param then
        local data = loadData('User:IanComradeBot/prototypes/entity sprite.json')
         -- Генерация шаблона по умолчанию с поиском по ID
        if not data or type(data) ~= 'table' then
         return generateDefaultTemplate(data, frame.args)
            return 'Ошибка: Невозможно загрузить данные из JSON.'
        end
 
        local entry = data[1]
        if not entry then
            return 'Ошибка: Не найден элемент с таким ID.'
        end
       
         -- Генерация шаблона по умолчанию
         return generateDefaultTemplate(entry, frame.args)
     end
     end


     -- Логика для других параметров, как "image", "license", "repeat"
     -- Логика для других параметров, как "image", "license", "repeat"
     if param == "repeat" then
     if param == "repeat" then
        local data = loadData('User:IanComradeBot/prototypes/entity sprite.json')
        if not data or type(data) ~= 'table' then
            return 'Ошибка: Невозможно загрузить данные из JSON.'
        end
         return generateRepeatTemplate(data)
         return generateRepeatTemplate(data)
     else
     else
        local data = loadData('User:IanComradeBot/prototypes/entity sprite.json')
        if not data or type(data) ~= 'table' then
            return 'Ошибка: Невозможно загрузить данные из JSON.'
        end
         local result = {}
         local result = {}
         for _, entry in ipairs(data) do
         for _, entry in ipairs(data) do