Модуль:Entity Sprite: различия между версиями
Pok (обсуждение | вклад) мНет описания правки Метка: ручная отмена |
Pok (обсуждение | вклад) мНет описания правки Метка: ручная отмена |
||
| Строка 2: | Строка 2: | ||
-- Загрузка данных | -- Загрузка данных | ||
local jsonData = nil | |||
local function loadData(filePath) | local function loadData(filePath) | ||
local page = mw.title.new(filePath) | if not jsonData then | ||
local page = mw.title.new(filePath) | |||
local content = page and page:getContent() | |||
jsonData = content and mw.text.jsonDecode(content) or nil | |||
end | |||
return jsonData | |||
end | end | ||
| Строка 101: | Строка 106: | ||
end | end | ||
local firstId = group[1].id | local firstId = group[1].id | ||
table.insert(result, | table.insert(result, "{{Entity Sprite/Image|" .. entry.id .. "|" .. spritePath .. "}}") | ||
end | end | ||
end | end | ||
return table.concat(result, "\n") | return mw.getCurrentFrame():preprocess(table.concat(result, "\n")) | ||
end | end | ||
-- Создаём индекс для путей | -- Создаём индекс для путей | ||
local spritePathCache = nil | |||
local function createSpritePathIndex(data) | local function createSpritePathIndex(data) | ||
if not spritePathCache then | |||
spritePathCache = {} | |||
for _, entry in ipairs(data) do | |||
local spritePath = getSpritePath(entry) | |||
if spritePath then | |||
spritePathCache[spritePath] = entry.id | |||
end | |||
end | end | ||
end | end | ||
return | return spritePathCache | ||
end | end | ||