Модуль:Песочница/Pok

Материал из Space Station 14 Вики

Для документации этого модуля может быть создана страница Модуль:Песочница/Pok/doc

local p = {}

local cachedData = nil
local loadCount = 0

local function loadData(filePath)
    if cachedData then
        return cachedData
    end
    loadCount = loadCount + 1
    local page = mw.title.new(filePath)
    local content = page and page:getContent()
    cachedData = content and mw.text.jsonDecode(content) or nil
    return cachedData
end

function p.main(frame)
    local param = frame.args[1]
    local secondaryParam = frame.args[2]

    local data = loadData('User:IanComradeBot/prototypes/entity sprite.json')
    if not data then
        return 'Ошибка: Невозможно загрузить данные из JSON.'
    end

    if param == "debug" then
        return "Количество загрузок JSON: " .. loadCount
    end

    if param == "image" and secondaryParam then
        for _, entry in ipairs(data) do
            if entry.id == secondaryParam then
                return entry.Sprite and entry.Sprite.sprite or (entry.Icon and entry.Icon.sprite) or "Ошибка: Спрайт не найден."
            end
        end
        return "Ошибка: ID не найден."
    end
end

return p