Модуль:Prototypes/Хранилище/Предмет: различия между версиями
Pok (обсуждение | вклад) мНет описания правки |
Pok (обсуждение | вклад) мНет описания правки |
||
| Строка 192: | Строка 192: | ||
-- Обработка NestedSelector | -- Обработка NestedSelector | ||
processNestedSelectors = function(children) | |||
local result = '' | local result = '' | ||
local | local groupSelectors = {} | ||
for _, child in ipairs(children) do | |||
if child["!type"] == "GroupSelector" then | |||
local weight = tostring(child.weight or "default") | |||
groupSelectors[weight] = groupSelectors[weight] or {} | |||
table.insert(groupSelectors[weight], child.children) | |||
elseif child["!type"] == "NestedSelector" and child.tableId then | |||
-- Если у нас NestedSelector, добавляем его в группу "default" | |||
local weight = "default" | |||
groupSelectors[weight] = groupSelectors[weight] or {} | |||
table.insert(groupSelectors[weight], { child }) -- Оборачиваем, чтобы было в списке | |||
elseif child.id then | |||
-- Обычные элементы тоже в "default" | |||
local weight = "default" | |||
groupSelectors[weight] = groupSelectors[weight] or {} | |||
table.insert(groupSelectors[weight], { child }) | |||
end | |||
end | end | ||
-- | -- Генерация div для каждой группы | ||
for weight, groups in pairs(groupSelectors) do | |||
result = result .. string.format('<div class="together" id="%s">', weight) | |||
for _, group in ipairs(groups) do | |||
for _, item in ipairs(group) do | |||
if item.id then | |||
result = result .. formatContent(item) | |||
elseif item["!type"] == "NestedSelector" then | |||
result = result .. getTableOutput(item.tableId) -- Просто вставляем таблицу | |||
end | |||
end | |||
end | end | ||
result = result .. '</div>' | |||
end | end | ||
return result | return result | ||