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

Нет описания правки
мНет описания правки
 
(не показаны 2 промежуточные версии этого же участника)
Строка 1: Строка 1:
-- Загрузка данных
local recipeData = mw.loadData("Модуль:IanComradeBot/prototypes/lathe/recipes.json/data")
local p = {}
local p = {}


-- Функция для загрузки данных исследований из JSON-файла
-- Функция для загрузки данных исследований из JSON-файла
local function loadResearchData()
local function loadResearchData()
     return mw.text.jsonDecode(mw.title.new("User:IanComradeBot/Песочница.json"):getContent())
     return mw.text.jsonDecode(mw.title.new("User:IanComradeBot/prototypes/research.json"):getContent())
end
end


Строка 34: Строка 37:
         local tech = nil
         local tech = nil
         for _, research in ipairs(dataCache) do
         for _, research in ipairs(dataCache) do
             if research.technology and research.technology.id == researchId then
             if research and research.id == researchId then
                 tech = research.technology
                 tech = research
                 break
                 break
             end
             end
Строка 56: Строка 59:
                         local prerequisiteName = ""
                         local prerequisiteName = ""
                         for _, research in ipairs(dataCache) do
                         for _, research in ipairs(dataCache) do
                             if research.technology and research.technology.id == prerequisiteId then
                             if research and research.id == prerequisiteId then
                                 prerequisiteName = research.technology.name
                                 prerequisiteName = research.name
                                 break
                                 break
                             end
                             end
Строка 72: Строка 75:


             -- Формирование строки открываемых исследований
             -- Формирование строки открываемых исследований
            local unlocks = ""
local unlocks = ""
            if tech.recipeUnlocks and #tech.recipeUnlocks > 0 then
if tech.recipeUnlocks and #tech.recipeUnlocks > 0 then
                unlocks = '<ul>'
    unlocks = '<ul>'
                for _, recipe in ipairs(tech.recipeUnlocks) do
    for _, recipeId in ipairs(tech.recipeUnlocks) do
                    if recipe and recipe ~= "" then  
        if recipeId and recipeId ~= "" then  
                        unlocks = unlocks .. '<li>{{#invoke:Entity Lookup|createimagetooltip|Файл:'  
            -- Ищем в recipeData объект с id == recipeId
                            .. recipe .. '.png|' .. recipe
            local newId = recipeId
                            .. '|Мета=32x32px,link=}} {{#invoke:Entity Lookup|getname|'  
            for _, rec in ipairs(recipeData) do
                            .. recipe .. '}}</li>'
                if rec and rec.id == recipeId then
                    end
                    newId = rec.result or recipeId
                end
                    break
                unlocks = unlocks .. '</ul>'
                end
            end
            end
            unlocks = unlocks .. '<li>{{#invoke:Entity Lookup|createimagetooltip|Файл:'  
                .. newId .. '.png|' .. newId
                .. '|Мета=32x32px,link=}} {{#invoke:Entity Lookup|getname|'  
                .. newId .. '}}</li>'
        end
    end
    unlocks = unlocks .. '</ul>'
end


             -- Шаблон для отображения блока исследования
             -- Шаблон для отображения блока исследования