Модуль:Prototypes/Механика/Исследование: различия между версиями

мНет описания правки
мНет описания правки
Строка 1: Строка 1:
local p = {}
local p = {}
local data = nil  -- Глобальная переменная для хранения данных JSON
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)
-- Загрузка данных из JSON, если они еще не загружены
-- Загружаем данные (из кэша, если они уже загружены)
if not data then
local data = loadData()
data = mw.text.jsonDecode(mw.title.new("Участник:IanComradeBot/entity_prototypes.json"):getContent())
end


-- Поиск платы по 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
if not data then
local data = mw.text.jsonDecode(mw.title.new("User:IanComradeBot/research_prototypes.json"):getContent())
data = mw.text.jsonDecode(mw.title.new("User:IanComradeBot/research_prototypes.json"):getContent())
end


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