Модуль:FoodDetails
Материал из Eco - Русская Wiki
Документация
Этот модуль обеспечивает внутреннюю функциональность Шаблон: FoodDetails.
При отправке шаблона этот модуль создает таблицу со сведениями из следующих модулей:
Translating Module
This Module is a copy of the EN Module of the same name.
RULES FOR TRANSLATING THE LUA MODULES
IF IN DOUBT ASK IN DISCORD
IF ONLY 99.99% SURE ASK IN DISCORD
'string' --Anything using single quotes is a string HARDCODED in this file, these should be translated where appropriate.
'|- Valign \n' -- EXCEPTION if it looks like HTML styling,
local variable -- don't edit or change variable names
speciesTable.idealGrowthRate -- don't edit names of getters or methods
local p = {}
function p.main()
local wiki = ''
-- import the required modules
local itemData = require( "Module:ItemData" )
local recipeData = require( "Module:CraftingRecipes" )
local plantData = require( "Module:PlantData" )
-- assign modules for use
local items = itemData.items
local recipes = recipeData.recipes
local plants = plantData.plants
-- create the header of the table
local header = "<table class=\"wikitable sortable\"> \n "
header = header .. "<tr> \n "
header = header .. "<th>Еда</th> \n "
header = header .. "<th>Калории</th> \n "
header = header .. "<th data-sort-type=\"descending\" style=\"color: red;\">Углеводы</th> \n "
header = header .. "<th style=\"color: orange;\">Протеин</th> \n "
header = header .. "<th style=\"color: yellow;\">Жиры</th> \n "
header = header .. "<th style=\"color: lightgreen;\">Витамины</th> \n "
header = header .. "<th>Нутриенты</th> \n "
header = header .. "<th>Density (/100ккал)</th> \n "
header = header .. "<th>Skill Point Contribution</th> \n "
header = header .. "<th>Создается в</th> \n "
header = header .. "<th>Требует навык</th> \n "
header = header .. "<th>Skill Level</th> \n "
header = header .. "<th data-sort-type=\"number\">Base Crafting Time(Min)</th> \n "
header = header .. "</tr> \n "
wiki = header
for k,v in pairs(items) do
local row = ''
if v.group == 'Еда' then
--if (k == "Basic Salad" or k == "Fiddlehead Salad" or k == "Bear S U P R E M E" or k == "Charred Tomato" or k == "Tallow" or k == "Beet" or k == "Campfire Beans" or k == "Wheat") then
local item = k
row = row .. "<tr> \n "
local nutrition = v.vitamins + v.carbs + v.protein + v.fat
local sp_contribution = nutrition * v.calories
-- print name, calories, carbs, protein, fat, vitamins, nutrition and skill point contribution from ItemData.
row = row .. "<td> [[" .. item .. "]] </td> \n"
row = row .. "<td>" .. v.calories .. " </td> \n"
row = row .. "<td>" .. v.carbs .. "</td> \n"
row = row .. "<td>" .. v.protein .. "</td> \n"
row = row .. "<td>" .. v.fat .. "</td> \n"
row = row .. "<td>" .. v.vitamins .. "</td> \n"
row = row .. "<td>" .. nutrition .. "</td> \n"
row = row .. "<td>" .. v.density .. "</td> \n"
row = row .. "<td>" .. sp_contribution .. "</td> \n"
local created = ''
local skill = ''
local skill_level = ''
local baseCraftTime = ''
local baseLaborCost = ''
local baseXPGain = ''
local recipe = ''
local plant = ''
if recipes[item] ~= nil then
recipe = recipes[item] -- implies food item is created via a recipe with the item's name
-- else
-- for key,val in pairs(recipes) do
-- for numx = 1, #val.variants[item].products and val.variants ~= '' do
-- if val.variants[item].products[numx][1] == item then
-- recipe = val -- implies food item is created via a differently named recipe (issue: selects the first found recipe)
-- end
-- end
-- end
end
if recipe ~= '' then
created = recipe.craftStn[1]
if recipe.skillNeeds[1] == nil then
skill = "none" -- implies a basic recipe like Campfire Beans
skill_level = '-'
else
skill = recipe.skillNeeds[1][1] -- implies a "normal" recipe like Fiddlehead Salad that has a skill requirement
skill_level = tonumber(recipe.skillNeeds[1][2])
end
baseCraftTime = tonumber(recipe.baseCraftTime)
if baseCraftTime == 0 then
baseCraftTime = '?' -- it looks like many foods have erroneous 0 baseCraftTime, so these are explicitly marked suspect
end
else
for key,val in pairs(plants) do
if val.resourceItem == '[[' .. item .. ']]' then
plant = val --implies food item is harvested from a plant
end
end
if plant ~= '' then
skill = "Собирательство"
skill_level = 0
if (plant.harvestTool ~= nil and plant.killOnHarvest == 'Yes') then
created = plant.harvestTool --implies a plant like wheat that must be destroyed with a tool
else
created = "none" --implies a plant gathered like beets or huckleberry, even if the plant can be destroyed with a tool
end
baseCraftTime = 0
else
--implies food item not created via a recipe or a plant
created = "-"
skill = "-"
skill_level = "-"
baseCraftTime = "-"
end
end
if (skill ~= '' and skill ~= 'none' and skill ~= '-') then
skill = "[[" .. skill .. "]]"
end
if (created ~= '' and created ~= 'none' and created ~= '-') then
created = "[[" .. created .. "]]"
end
-- print the icon or none for the found created.
row = row .. "<td>" .. tostring(created) .. "</td> \n"
-- print skill needed or none.
row = row .. "<td>" .. tostring(skill) .. "</td> \n"
-- print skill level needed.
row = row .. "<td>" .. tostring(skill_level) .. "</td> \n"
-- print crafting minutes.
row = row .. "<td>" .. baseCraftTime .. "</td> \n"
row = row .. "</tr>"
--print(item)
--print(tostring(created))
--print(tostring(skill))
--print(tostring(skill_level))
--print(tostring(baseCraftTime))
--print("")
--end
end
-- add row created to table.
wiki = wiki .. row
end
wiki = wiki .. " </table>"
return wiki
end
return p