Модуль:Entity Sprite: различия между версиями
Pok (обсуждение | вклад) мНет описания правки |
Pok (обсуждение | вклад) мНет описания правки |
||
| Строка 3: | Строка 3: | ||
-- Загрузка данных | -- Загрузка данных | ||
local function loadData(filePath) | local function loadData(filePath) | ||
local page = mw.title.new(filePath) | |||
local content = page and page:getContent() | |||
return content and mw.text.jsonDecode(content) or nil | |||
end | end | ||
-- Проверка равенства двух таблиц | -- Проверка равенства двух таблиц | ||
| Строка 74: | Строка 70: | ||
end | end | ||
return nil | return nil | ||
end | end | ||
| Строка 111: | Строка 101: | ||
end | end | ||
local firstId = group[1].id | local firstId = group[1].id | ||
table.insert(result, "{{Entity Sprite/ | table.insert(result, mw.getCurrentFrame():preprocess("{{Entity Sprite/Repeat|" .. table.concat(idLinks, " ") .. "|" .. firstId .. "}}")) | ||
end | end | ||
end | end | ||
return | return table.concat(result, "\n") | ||
end | end | ||
-- Создаём индекс для путей | -- Создаём индекс для путей | ||
local function createSpritePathIndex(data) | local function createSpritePathIndex(data) | ||
local index = {} | |||
for _, entry in ipairs(data) do | |||
local spritePath = getSpritePath(entry) | |||
if spritePath then | |||
index[spritePath] = entry.id | |||
end | end | ||
end | end | ||
return | return index | ||
end | end | ||
| Строка 235: | Строка 223: | ||
return nil | return nil | ||
elseif param == "image" and secondaryParam then | elseif param == "image" and secondaryParam then | ||
return getSpritePath( | for _, entry in ipairs(data) do | ||
if entry.id == secondaryParam then | |||
return getSpritePath(entry) or "Ошибка: Спрайт не найден." | |||
end | |||
end | |||
return "Ошибка: ID не найден." | |||
elseif param == "image" or param == "path" then | elseif param == "image" or param == "path" then | ||
local result = {} | local result = {} | ||
| Строка 249: | Строка 242: | ||
return generateDefaultTemplate(data, frame.args) | return generateDefaultTemplate(data, frame.args) | ||
end | end | ||
end | end | ||
return p | return p | ||