Модуль:Песочница/Pok: различия между версиями

Нет описания правки
Полностью удалено содержимое страницы
Метка: очистка
 
(не показано 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