|
|
| (не показано 235 промежуточных версий этого же участника) |
| Строка 1: |
Строка 1: |
| -- Загрузка данных
| |
| local itemData = mw.loadData("Модуль:IanComradeBot/prototypes/fills/Item.json/data")
| |
| local itemSlotsData = mw.loadData("Модуль:IanComradeBot/prototypes/ItemSlots.json/data")
| |
|
| |
|
| local p = {}
| |
|
| |
| -- Функция для поиска первого startingItem в slots
| |
| local function getFirstStartingItem(data)
| |
| if not data or not data.ItemSlots or not data.ItemSlots.slots then
| |
| return nil
| |
| end
| |
|
| |
| for _, slot in pairs(data.ItemSlots.slots) do
| |
| if slot.startingItem and slot.startingItem ~= "" then
| |
| return slot.startingItem
| |
| end
| |
| end
| |
|
| |
| return nil
| |
| end
| |
|
| |
| -- Поиск данных по ID
| |
| local function findDataById(itemDataIndex, id)
| |
| if not itemDataIndex then return nil end
| |
| for _, item in ipairs(itemDataIndex) do
| |
| if item.id == id then
| |
| return item
| |
| end
| |
| end
| |
| end
| |
|
| |
| -- Форматирование содержимого
| |
| local function formatContent(id)
| |
| if not id then return "Ошибка: отсутствует id у элемента." end
| |
| local name = string.format("{{#invoke:Entity Lookup|getname|%s}}", id)
| |
| local image = string.format("%s.png", id)
| |
| return string.format("{{LinkСard|SideStyle=1|background-color=#cbcbff0a|image=%s|name=%s}}", image, name)
| |
| end
| |
|
| |
| -- Основная функция модуля
| |
| function p.main(frame)
| |
| local mode = frame.args[1]
| |
| local id = frame.args[2]
| |
|
| |
| if not id then return "Не указан ID." end
| |
|
| |
| if mode == "slot" then
| |
| local itemDataEntry = findDataById(itemSlotsData, id)
| |
| if not itemDataEntry then return "ID не найден в данных ItemSlots." end
| |
|
| |
| local startingItem = getFirstStartingItem(itemDataEntry)
| |
| if not startingItem then return "Не найден startingItem в slots." end
| |
|
| |
| return frame:preprocess(formatContent(startingItem))
| |
| else
| |
| return "Неизвестный режим: " .. mode
| |
| end
| |
| end
| |
|
| |
| return p
| |