Модуль:Prototypes/Роль/Экипировка: различия между версиями

мНет описания правки
мНет описания правки
Строка 9: Строка 9:
-- Функция для поиска объекта по id
-- Функция для поиска объекта по id
local function findById(tbl, id)
local function findById(tbl, id)
     for k, v in pairs(tbl) do
     for _, v in pairs(tbl) do
         if k == id or (v.id and v.id == id) then
         if v.id == id then
             return v
             return v
         end
         end
Строка 17: Строка 17:
end
end


-- Функция для преобразования первого символа строки в заглавный
-- Функция для преобразования первой буквы строки в заглавную
local function capitalizeFirst(str)
local function capitalizeFirst(str)
     return str:sub(1,1):upper() .. str:sub(2)
     return (str:gsub("^%l", string.upper))
end
end


Строка 49: Строка 49:
     end
     end


    -- Если раздел equipment отсутствует, работаем с пустой таблицей,
    -- чтобы корректно перейти к поиску через gearloadoutGroup
     local gearEquipment = gear.equipment or {}
     local gearEquipment = gear.equipment or {}


Строка 59: Строка 57:
     -- 2. Если в gearData для данного слота ничего не найдено – ищем в gearloadoutGroup
     -- 2. Если в gearData для данного слота ничего не найдено – ищем в gearloadoutGroup
     if itemId == "" then
     if itemId == "" then
         local combinedId = jobId .. capitalizeFirst(slot)
         local combinedId = capitalizeFirst(jobId) .. capitalizeFirst(slot)
         local groupEntry = findById(gearloadoutGroup, combinedId)
         local groupEntry = findById(gearloadoutGroup, combinedId)
         if groupEntry and groupEntry.loadouts and #groupEntry.loadouts > 0 then
         if groupEntry and groupEntry.loadouts and #groupEntry.loadouts > 0 then