|
Метки: очистка ручная отмена |
| Строка 1: |
Строка 1: |
| local p = {}
| |
|
| |
|
| function p.main(frame)
| |
| local args = frame.args
| |
| local id = args[1]
| |
| if not id then
| |
| return "Ошибка: не указан обязательный параметр id."
| |
| end
| |
|
| |
| -- Инициализация данных предмета
| |
| local itemStack = frame:preprocess(string.format('{{#invoke:Prototypes/Хранилище/Предмет|main|framing|stack|%s}}', id))
| |
| local itemContained = frame:preprocess(string.format('{{#invoke:Prototypes/Хранилище/Предмет|main|framing|contained|%s}}', id))
| |
| local itemSlot = frame:preprocess(string.format('{{#invoke:Prototypes/Хранилище/Предмет|main|framing|slot|%s}}', id))
| |
| local itemChem = frame:preprocess(string.format('{{СollapsibleMenu|color=#3e7c82|{{#invoke:Prototypes/Хранилище/Предмет|main|chem|%s}}}}', id))
| |
| local itemName = frame:preprocess("{{#invoke:Entity Lookup|getname|" .. id .. "}}")
| |
|
| |
| local prefix = args[2] or ""
| |
| local label = args["label"] or itemName
| |
| local size = args["size"] or "32px"
| |
|
| |
| -- Формирование строки изображения
| |
| local image
| |
| if args["image"] then
| |
| image = string.format("[[Файл:%s|%s]]", args["image"], size)
| |
| else
| |
| image = string.format("[[Файл:%s.png|%s]]", id, size)
| |
| end
| |
|
| |
| -- Формирование ярлыка с ссылкой, если задана
| |
| local labelOutput = label
| |
| if args["link"] then
| |
| local linkTarget = args["link"]
| |
| if linkTarget == "" then
| |
| linkTarget = itemName
| |
| end
| |
| if label ~= "" then
| |
| labelOutput = string.format("[[%s|%s]]", linkTarget, label)
| |
| else
| |
| labelOutput = ""
| |
| end
| |
| end
| |
|
| |
| -- Сбор информации в зависимости от наличия репозитория
| |
| local additionalInfo
| |
| if args["repository"] then
| |
| additionalInfo = itemStack .. " " .. labelOutput .. " " .. itemContained .. " " .. itemSlot .. " " .. itemChem
| |
| else
| |
| additionalInfo = prefix .. " " .. labelOutput
| |
| end
| |
|
| |
| local result = image .. " " .. additionalInfo
| |
|
| |
| -- Формирование вывода через LinkCard, если указан обёртка
| |
| if args["wrapper"] then
| |
| local pixel = string.match(size, "(%d+)")
| |
| local wrapperInfo
| |
| if args["repository"] then
| |
| wrapperInfo = label .. itemStack .. " " .. itemContained .. " " .. itemSlot .. " " .. itemChem
| |
| else
| |
| wrapperInfo = label .. prefix
| |
| end
| |
| local imageParam = args["image"] or (id .. ".png")
| |
| local linkParam = args["link"]
| |
| if not linkParam or linkParam == "" then
| |
| linkParam = itemName
| |
| end
| |
|
| |
| return frame:preprocess(string.format("{{LinkCard|name=%s|image=%s|pixel=%s|link=%s|SideStyle=1}}", wrapperInfo, imageParam, pixel, linkParam))
| |
| end
| |
|
| |
| return frame:preprocess("<span>" .. result .. "</span>")
| |
| end
| |
|
| |
| return p
| |
Для документации этого модуля может быть создана страница Модуль:Песочница/Pok/doc