Модуль:BotanyStats: различия между версиями

мНет описания правки
мНет описания правки
 
(не показано 20 промежуточных версий этого же участника)
Строка 1: Строка 1:
local p = {}
local p = {}
local firstRun = true  -- Глобальная переменная для отслеживания первого вызова


-- Функция для установки значения по умолчанию
-- Функция для установки значения по умолчанию
Строка 33: Строка 32:
     local description = default(frame.args.description, "Не обладает никакими особыми свойствами")      -- Описание
     local description = default(frame.args.description, "Не обладает никакими особыми свойствами")      -- Описание
     local mutationId = frame.args.mutationId                                                            -- Мутации  
     local mutationId = frame.args.mutationId                                                            -- Мутации  
     local location = default(frame.args.location, "* Нет гарантированных мест спавна")                  -- Местонахождение  
     local location = default(frame.args.location, "* Гарантированных мест спавна нет")                  -- Местонахождение  
      
      
     local mutation = frame.args.mutation  -- Параметр для определения таблицы: мутаций она или обычных растений
     local mutation = frame.args.mutation  -- Параметр для определения таблицы: мутаций она или обычных растений
Строка 55: Строка 54:
     elseif mutationId == "" then
     elseif mutationId == "" then
         -- Если параметр пуст
         -- Если параметр пуст
         mutationCells = '<div class="' .. mutationClass .. '">Не имеет мутаций</div> \n'
         mutationCells = '<div class="' .. mutationClass .. '" style="color:#e3fff2;">Не имеет мутаций</div> \n'
     else
     else
         -- Если параметр задан и не пуст
         -- Если параметр задан и не пуст
Строка 71: Строка 70:
     out = out .. frame:preprocess('!{{#invoke:Entity Lookup|createimagetooltip|Файл:' .. seedId .. '.png|' .. seedId .. '|Мета=64x64px,link=}} \n')
     out = out .. frame:preprocess('!{{#invoke:Entity Lookup|createimagetooltip|Файл:' .. seedId .. '.png|' .. seedId .. '|Мета=64x64px,link=}} \n')
     out = out .. '|style="text-wrap:nowrap;"| \n'
     out = out .. '|style="text-wrap:nowrap;"| \n'
    out = out .. frame:preprocess('* {{tooltip|Потенция|Потенция растения, которая влияет на количество химических веществ в растении|color=#e1f6ff}}: ' .. '<b>' .. potency .. '</b>' .. '\n')
out = out .. frame:preprocess('<dd style="font-size: 0.9em;">{{AltTooltip|Потенция|Потенция растения, которая влияет на количество химических веществ в растении|font-weight=500}}: ' .. '<span style="font-weight: 500">' .. potency .. '</span>' .. '</dd> \n')
    out = out .. frame:preprocess('* {{tooltip|Урожайность|Количество продуктов, которые растение дает за один урожай|color=#e1f6ff}}: ' .. '<b>' .. yield .. '</b>' .. '\n')
out = out .. frame:preprocess('<dd style="font-size: 0.9em;">{{AltTooltip|Урожайность|Количество продуктов, которые растение дает за один урожай|font-weight=500}}: ' .. '<span style="font-weight: 500">' .. yield .. '</span>' .. '</dd> \n')
    out = out .. frame:preprocess('* {{tooltip|Время жизни|Продолжительность жизни растения|color=#e1f6ff}}: ' .. '<b>' .. lifespan .. '</b>' .. '\n')
out = out .. frame:preprocess('<dd style="font-size: 0.9em;">{{AltTooltip|Время жизни|Продолжительность жизни растения|font-weight=500}}: ' .. '<span style="font-weight: 500">' .. lifespan .. '</span>' .. '</dd> \n')
    out = out .. frame:preprocess('* {{tooltip|Созревания|Время созревания растения|color=#e1f6ff}}: ' .. '<b>' .. maturation .. '</b>' .. '\n')
out = out .. frame:preprocess('<dd style="font-size: 0.9em;">{{AltTooltip|Созревания|Время созревания растения|font-weight=500}}: ' .. '<span style="font-weight: 500">' .. maturation .. '</span>' .. '</dd> \n')
    out = out .. frame:preprocess('* {{tooltip|Продуктивность|Время, необходимое для производства следующего урожая после созревания|color=#e1f6ff}}: ' .. '<b>' .. production .. '</b>' .. '\n')
out = out .. frame:preprocess('<dd style="font-size: 0.9em;">{{AltTooltip|Продуктивность|Время, необходимое для производства следующего урожая после созревания|font-weight=500}}: ' .. '<span style="font-weight: 500">' .. production .. '</span>' .. '</dd> \n')
    out = out .. frame:preprocess('* {{tooltip|Стадии роста|Этапы роста растения, которые оно проходит от начальной стадии до полной зрелости|color=#e1f6ff}}: ' .. '<b>' .. growthStages .. '</b>' .. '\n')
out = out .. frame:preprocess('<dd style="font-size: 0.9em;">{{AltTooltip|Стадии роста|Этапы роста растения, которые оно проходит от начальной стадии до полной зрелости|font-weight=500}}: ' .. '<span style="font-weight: 500">' .. growthStages .. '</span>' .. '\n')
    out = out .. '|style="text-wrap:nowrap;"| \n'
out = out .. '|style="text-wrap:nowrap;"| \n'
    out = out .. frame:preprocess('* {{tooltip|Вода|Потребления воды в секунду|color=#e1f6ff}}: ' .. '<b>' .. waterConsumption .. '</b>' .. '\n')
out = out .. frame:preprocess('<dd style="font-size: 0.9em;">{{AltTooltip|Вода|Потребления воды в секунду|font-weight=500}}: ' .. '<span style="font-weight: 500">' .. waterConsumption .. '</span>' .. '</dd> \n')
    out = out .. frame:preprocess('* {{tooltip|Удобрения|Потребления удобрений в секунду|color=#e1f6ff}}: ' .. '<b>' .. nutrientConsumption .. '</b>' .. '\n')
out = out .. frame:preprocess('<dd style="font-size: 0.9em;">{{AltTooltip|Удобрения|Потребления удобрений в секунду|font-weight=500}}: ' .. '<span style="font-weight: 500">' .. nutrientConsumption .. '</span>' .. '</dd> \n')
    out = out .. frame:preprocess('* {{tooltip|Температура|Оптимальная температура|color=#e1f6ff}}: ' .. '<b>' .. string.format("%.2f", idealHeatCelsius) .. '°C</b>' .. '\n')
out = out .. frame:preprocess('<dd style="font-size: 0.9em;">{{AltTooltip|Температура|Оптимальная температура|font-weight=500}}: ' .. '<span style="font-weight: 500">' .. string.format("%.2f", idealHeatCelsius) .. '</span>' .. '°C</dd> \n')
    out = out .. frame:preprocess('* {{tooltip|Освещения|Оптимальный уровень освещения|color=#e1f6ff}}: ' .. '<b>' .. idealLight .. '</b>' .. '\n')
out = out .. frame:preprocess('<dd style="font-size: 0.9em;">{{AltTooltip|Освещения|Оптимальный уровень освещения|font-weight=500}}: ' .. '<span style="font-weight: 500">' .. idealLight .. '</span>' .. '</dd> \n')
 
     out = out .. '| ' .. description .. '\n'
     out = out .. '| ' .. description .. '\n'
     out = out .. frame:preprocess('|' .. mutationCells .. '\n')
     out = out .. frame:preprocess('|' .. mutationCells .. '\n')
Строка 87: Строка 87:
     -- Меняем цвета в зависимости от наличия параметра `mutation`
     -- Меняем цвета в зависимости от наличия параметра `mutation`
     if mutation == nil then
     if mutation == nil then
         out = out .. frame:preprocess('|{{SlideMenu|overlay|color=#e1f6ff|background-color=#0b6b3f|border-color=#074d2f|border-size=3px|title=Список|content=<p></p> \n' .. location .. '}} \n')
         out = out .. frame:preprocess('|{{SlideMenu|overlay|color=#e3fff2|background-color=#0b6b3f|border-color=#074d2f|border-size=3px|title=Список|content=<p></p> \n' .. location .. '}} \n')
     else
     else
         out = out .. frame:preprocess('|{{SlideMenu|overlay|color=#e1f6ff|background-color=#301453|border-color=#211235|border-size=3px|title=Список|content=<p></p> \n' .. location .. '}} \n')
         out = out .. frame:preprocess('|{{SlideMenu|overlay|color=#e3fff2|background-color=#301453|border-color=#211235|border-size=3px|title=Список|content=<p></p> \n' .. location .. '}} \n')
     end
     end
      
      
     out = out .. '|- \n'
     out = out .. '|- \n'
      
      
    -- CSS код, который подгружается при первом вызове модуля на странице
    if firstRun then
        firstRun = false
        out = out .. '<div class="customCSS" style="display:none"> .mutation-cell__plants { width: 100%; margin: 5px 0; box-sizing: border-box; text-align: left; background: #10673a; padding: 6px 10px; border-radius: 0.3em; border: 2px solid #094124; font-weight: 500; transition: background 0.05s; } .mutation-cell__plants:hover { background: #126d3e; } </div>'
        out = out .. '<div class="customCSS" style="display:none"> .mutation-cell__mutation { width: 100%; margin: 5px 0; box-sizing: border-box; text-align: left; background: #321557; padding: 6px 10px; border-radius: 0.3em; border: 2px solid #211235; font-weight: 500; transition: background 0.05s; } .mutation-cell__mutation:hover { background: #36155f; } </div>'
    end
     return out
     return out
end
end


return p
return p