Модуль:Prototypes/Хранилище/Предмет: различия между версиями

мНет описания правки
мНет описания правки
Строка 165: Строка 165:
handleGroupSelector = function(groupSelector)
handleGroupSelector = function(groupSelector)
     local result = ''
     local result = ''
    local groupSelectors = {}
    local weight = tostring(groupSelector.weight or "default")
      
      
     -- Группировка элементов по весу
     -- Проверка на существование children
     groupSelectors[weight] = groupSelectors[weight] or {}
     if not groupSelector.children then
     table.insert(groupSelectors[weight], groupSelector.children)
        return ""
    end
 
    local weight = groupSelector.weight or "default"
   
    -- Начинаем формировать div для текущей группы
     result = result .. string.format('<div class="together" id="%s">', weight)


     -- Генерация div для каждой группы
     -- Проходим по всем элементам children
    for weight, groups in pairs(groupSelectors) do
    for _, child in ipairs(groupSelector.children) do
        -- Оборачиваем в div с уникальным ID (вес группы)
        -- Если это GroupSelector, рекурсивно обрабатываем
        result = result .. string.format('<div class="together" id="%s">', weight)
        if child["!type"] == "GroupSelector" then
       
            result = result .. handleGroupSelector(child)  -- Рекурсивный вызов для вложенных групп
        -- Проходим по всем элементам группы
        elseif child.id then
        for _, group in ipairs(groups) do
            -- Для обычных элементов, с id, вызываем функцию formatContent
            -- Обрабатываем вложенные GroupSelector
            result = result .. formatContent(child)
            for _, child in ipairs(group) do
        else
                if child["!type"] == "GroupSelector" then
            -- Обработка элементов без id (на всякий случай)
                    result = result .. handleGroupSelector(child)  -- Рекурсивный вызов для вложенных групп
             result = result .. "<div>Ошибка: отсутствует id у элемента.</div>"
                elseif child.id then
                    result = result .. formatContent(child) -- Обычный элемент с ID
                end
             end
         end
         end
       
        -- Закрываем div для группы
        result = result .. '</div>'
     end
     end
   
    -- Закрываем div для текущей группы
    result = result .. '</div>'


     return result
     return result