Модуль:Entity Tags

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

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

-- Загрузка данных
local tagsData = mw.loadData("Модуль:IanComradeBot/prototypes/entity tags.json/data")

local p = {}

-- Поиск по ID
local function searchByID(data, searchID)
    for _, entry in ipairs(data) do
        if entry.id == searchID then
            if entry.Tag and entry.Tag.tags and #entry.Tag.tags > 0 then
                return table.concat(entry.Tag.tags, ", ")
            else
                return "Нет тегов"
            end
        end
    end
    return "ID не найден"
end

-- Поиск по тегу
local function searchByTag(data, searchTag)
    local results = {}
    for _, entry in ipairs(data) do
        if entry.Tag and entry.Tag.tags then
            for _, tag in ipairs(entry.Tag.tags) do
                if tag == searchTag then
                    table.insert(results, entry.id)
                    break
                end
            end
        end
    end
    if #results > 0 then
        return table.concat(results, ", ")
    else
        return "Тег не найден"
    end
end

-- Основная функция модуля
function p.main(frame)
    local args = frame.args
    local mode = args[1] or ""
    local searchVal = args[2] or ""

    if mode == "id" then
        return searchByID(tagsData, searchVal)
    elseif mode == "tag" then
        return searchByTag(tagsData, searchVal)
    else
        return "Неверный режим. Используйте 'id' или 'tag'."
    end
end

return p