Модуль:Prototypes/Механика/Исследование: различия между версиями
Pok (обсуждение | вклад) мНет описания правки |
Pok (обсуждение | вклад) мНет описания правки |
||
| Строка 1: | Строка 1: | ||
local p = {} | local p = {} | ||
local | local dataCache = nil -- Кэш для данных | ||
-- Функция для загрузки данных из JSON-файла | |||
local function loadData() | |||
if not dataCache then | |||
dataCache = mw.text.jsonDecode(mw.title.new("Участник:IanComradeBot/entity_prototypes.json"):getContent()) | |||
end | |||
return dataCache | |||
end | |||
-- Функция для перевода ID плат в ID машин | -- Функция для перевода ID плат в ID машин | ||
local function translateBoardIDToMachineID(boardID) | local function translateBoardIDToMachineID(boardID) | ||
-- | -- Загружаем данные (из кэша, если они уже загружены) | ||
local data = loadData() | |||
-- Поиск платы по ID и извлечение её названия | -- Поиск платы по ID и извлечение её названия | ||
| Строка 54: | Строка 60: | ||
local id = frame.args.id or "" -- ID исследования | local id = frame.args.id or "" -- ID исследования | ||
local icon = frame.args.icon or "" -- | local icon = frame.args.icon or "" -- Изображение исследования | ||
local customRecipeUnlocks = frame.args.customRecipeUnlocks or nil -- Ручной ввод в список разблокируемых технологий | local customRecipeUnlocks = frame.args.customRecipeUnlocks or nil -- Ручной ввод в список разблокируемых технологий | ||
-- Загрузка данных из JSON | -- Загрузка данных из JSON | ||
local data = mw.text.jsonDecode(mw.title.new("User:IanComradeBot/research_prototypes.json"):getContent()) | |||
local out = cssLink | local out = cssLink | ||
| Строка 87: | Строка 91: | ||
-- Формирование HTML | -- Формирование HTML | ||
out = out .. '<div class="research" id="' .. discipline .. '">' | out = out .. '<div class="research" id="' .. discipline .. '">' | ||
out = out .. '<div class="research__images">[[Файл:' .. icon .. '.png|64x64px|центр|link=]]</div>' | out = out .. '<div class="research__images">[[Файл:' .. icon .. '.png|64x64px|центр|link=]]</div>' | ||
out = out .. '<div class="research__name">' .. tech.name .. '[[Файл:' .. discipline .. '.png|16px|link=]]</div>' | out = out .. '<div class="research__name">' .. tech.name .. '[[Файл:' .. discipline .. '.png|16px|link=]]</div>' | ||
out = out .. '<div class="research__type">' | out = out .. '<div class="research__type">' | ||
| Строка 100: | Строка 104: | ||
local recipeUnlocks | local recipeUnlocks | ||
if customRecipeUnlocks then | if customRecipeUnlocks then | ||
recipeUnlocks = mw.text.split(customRecipeUnlocks, " ") | recipeUnlocks = mw.text.split(customRecipeUnlocks, " ") | ||
else | else | ||
recipeUnlocks = tech.recipeUnlocks | recipeUnlocks = tech.recipeUnlocks | ||