Модуль:tablerole
| Строка 1: | Строка 1: | ||
local p = {} | local p = {} | ||
-- Задаем фиксированный порядок параметров | |||
local predefinedOrder = { | |||
"Управление шаттлом", | |||
"Продвинутый атмос", | |||
"Химия", | |||
"Сборка ДАМ/Сингулярность/Тесла", | |||
"Постройка сложных объектов", | |||
"Робототехника", | |||
"Постройка приборов", | |||
"Исследования и разработка", | |||
"Хирургия", | |||
"Магия", | |||
"Медицинское оборудование", | |||
"Вирусология", | |||
"Фармакология", | |||
"Атмос", | |||
"Продвинутая ботаника", | |||
"Взлом", | |||
"Коктейли", | |||
"Готовка", | |||
"Базовая ботаника", | |||
"Базовое лечение", | |||
"Простые конструкции", | |||
"Работа с P.A.C.M.A.N" | |||
} | |||
-- Создаем карту для быстрого поиска индекса каждого параметра | |||
local orderMap = {} | |||
for index, name in ipairs(predefinedOrder) do | |||
orderMap[name] = index | |||
end | |||
function p.render(frame) | function p.render(frame) | ||
| Строка 26: | Строка 58: | ||
end | end | ||
-- | -- Сортировка по заданному порядкуту | ||
table.sort(keys, function(a, b) | table.sort(keys, function(a, b) | ||
local | local posA = orderMap[a] | ||
if | local posB = orderMap[b] | ||
return | |||
elseif | if posA and posB then | ||
return true -- | return posA < posB | ||
elseif | elseif posA then | ||
return true -- Параметры из вашего списка идут первыми | |||
elseif posB then | |||
return false | return false | ||
else | else | ||
return tostring(a) < tostring(b) | return tostring(a) < tostring(b) -- Неизвестные параметры сортируются по алфавиту в конце | ||
end | end | ||
end) | end) | ||