|
|
| Строка 1: |
Строка 1: |
| -- Загрузка данных
| |
| local data = mw.loadData("Module:Entity Sprite/data") | | local data = mw.loadData("Module:Entity Sprite/data") |
|
| |
|
| local p = {} | | local p = {} |
|
| |
|
| -- Функция для получения таблицы данных
| |
| function p.getData() | | function p.getData() |
| return data | | return data |
| end | | end |
|
| |
|
| -- Функция получение пути спрайта
| |
| local function getSpritePath(entry)
| |
| if entry.Sprite and entry.Sprite.sprite then
| |
| return entry.Sprite.sprite
| |
| elseif entry.Icon and entry.Icon.sprite then
| |
| return entry.Icon.sprite
| |
| elseif entry.Sprite and entry.Sprite.layers then
| |
| for _, layer in pairs(entry.Sprite.layers) do
| |
| if layer.sprite then
| |
| return layer.sprite
| |
| end
| |
| end
| |
| end
| |
| return nil
| |
| end
| |
|
| |
| -- Функция генерация шаблона по записи
| |
| local function generateTemplate(entry, param, id, data)
| |
| local spritePath = getSpritePath(entry)
| |
| if not entry.id or not spritePath then
| |
| return nil
| |
| end
| |
|
| |
| if param == "image" then
| |
| if id then
| |
| if tostring(entry.id) == tostring(id) then
| |
| return spritePath
| |
| end
| |
| return nil
| |
| else
| |
| return ""
| |
| end
| |
| elseif param == "path" then
| |
| if id then
| |
| for _, e in pairs(data) do
| |
| if getSpritePath(e) == id then
| |
| return e.id
| |
| end
| |
| end
| |
| return nil
| |
| end
| |
| return ""
| |
| end
| |
|
| |
| return nil
| |
| end
| |
|
| |
| local function generateDefaultTemplate(data, args)
| |
| return "Неверный параметр или отсутствует логика генерации шаблона по умолчанию."
| |
| end
| |
|
| |
| -- Функция получение спрайта по ID
| |
| function p.getSprite(frame) | | function p.getSprite(frame) |
| local id = frame.args[1] | | local id = frame.args[1] |
| if not id then | | if not id then return "Ошибка: не указан ID" end |
| return "Ошибка: не указан ID"
| |
| end
| |
|
| |
|
| for _, entry in ipairs(data) do | | for _, entry in ipairs(data) do |
| Строка 74: |
Строка 18: |
|
| |
|
| return "Ошибка: ID не найден" | | return "Ошибка: ID не найден" |
| end
| |
|
| |
| -- Основная функция модуля
| |
| function p.main(frame)
| |
| local param = frame.args[1]
| |
| local id = frame.args[2]
| |
|
| |
| if param == "image" or param == "path" then
| |
| local result = {}
| |
| for _, entry in pairs(data) do
| |
| local template = generateTemplate(entry, param, id, data)
| |
| if template then
| |
| table.insert(result, template)
| |
| end
| |
| end
| |
| return table.concat(result, "\n")
| |
| else
| |
| return generateDefaultTemplate(data, frame.args)
| |
| end
| |
| end | | end |
|
| |
|
| return p | | return p |