« Module:FoodDetails » : différence entre les versions
De Eco - Wiki Français
| [version vérifiée] | [version vérifiée] |
Page créée avec « local p = {} function p.main() local wiki = '' -- import the required modules local itemData = mw.loadData( "Module:ItemData" ) local recipeData = mw.loadData( "Module:RecipeData" ) local plantData = mw.loadData( "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 "... » |
Aucun résumé des modifications |
||
| Ligne 2 : | Ligne 2 : | ||
function p.main() | function p.main() | ||
local wiki = '' | local wiki = '' | ||
-- import the required modules | -- import the required modules | ||
local itemData = mw.loadData( "Module:ItemData" ) | local itemData = mw.loadData("Module:ItemData") | ||
local recipeData = mw.loadData( "Module:RecipeData" ) | local recipeData = mw.loadData("Module:RecipeData") | ||
local plantData = mw.loadData( "Module:PlantData" ) | local plantData = mw.loadData("Module:PlantData") | ||
-- assign modules for use | -- assign modules for use | ||
local items = itemData.items | local items = itemData.items | ||
local recipes = recipeData.recipes | local recipes = recipeData.recipes | ||
local plants = plantData.plants | local plants = plantData.plants | ||
-- | -- table header | ||
local header = | local header = [=[ | ||
<table class="wikitable sortable"> | |||
<tr> | |||
<th>Food</th> | |||
<th>Calories</th> | |||
<th data-sort-type="number" style="color: red;">Carbs</th> | |||
<th style="color: orange;">Protein</th> | |||
<th style="color: yellow;">Fat</th> | |||
<th style="color: lightgreen;">Vitamins</th> | |||
<th>Nutrition</th> | |||
<th>Density (/100kcal)</th> | |||
<th>Skill Point Contribution</th> | |||
<th>Created With</th> | |||
<th>Skill Needed</th> | |||
<th>Skill Level</th> | |||
<th data-sort-type="number">Base Crafting Time (Min)</th> | |||
</tr> | |||
wiki = header | ]=] | ||
for | wiki = wiki .. header | ||
if v.group == | for itemName, v in pairs(items) do | ||
if v.group == "Food" then | |||
local | local row = "<tr>\n" | ||
local nutrition = v.vitamins + v.carbs + v.protein + v.fat | -- nutrition | ||
local sp_contribution = nutrition * v.calories | local nutrition = (v.vitamins or 0) + (v.carbs or 0) + (v.protein or 0) + (v.fat or 0) | ||
local sp_contribution = nutrition * (v.calories or 0) | |||
row = row .. "<td> [[" .. | row = row .. "<td> [[" .. itemName .. "]] </td>\n" | ||
row = row .. "<td>" .. v.calories .. " </td> \n" | row = row .. "<td>" .. (v.calories or 0) .. "</td>\n" | ||
row = row .. "<td>" .. v.carbs .. "</td> \n" | row = row .. "<td>" .. (v.carbs or 0) .. "</td>\n" | ||
row = row .. "<td>" .. v.protein .. "</td> \n" | row = row .. "<td>" .. (v.protein or 0) .. "</td>\n" | ||
row = row .. "<td>" .. v.fat .. "</td> \n" | row = row .. "<td>" .. (v.fat or 0) .. "</td>\n" | ||
row = row .. "<td>" .. v.vitamins .. "</td> \n" | row = row .. "<td>" .. (v.vitamins or 0) .. "</td>\n" | ||
row = row .. "<td>" .. nutrition .. "</td> \n" | row = row .. "<td>" .. nutrition .. "</td>\n" | ||
row = row .. "<td>" .. v.density .. "</td> \n" | row = row .. "<td>" .. (v.density or 0) .. "</td>\n" | ||
row = row .. "<td>" .. sp_contribution .. "</td> \n" | row = row .. "<td>" .. sp_contribution .. "</td>\n" | ||
local created = | ------------------------------------------------------------------ | ||
local skill = | -- FIND SOURCE: recipe or plant | ||
local skill_level = | ------------------------------------------------------------------ | ||
local baseCraftTime = | |||
local created = "-" | |||
local skill = "-" | |||
local recipe = | local skill_level = "-" | ||
local plant | local baseCraftTime = "-" | ||
local recipe = recipes[itemName] | |||
-- | local plant = nil | ||
-- 1) RECIPE FOUND | |||
if recipe then | |||
if recipe.craftStn and recipe.craftStn[1] then | |||
created = "[[" .. recipe.craftStn[1][1] .. "]]" | |||
end | |||
if recipe.skillNeeds and recipe.skillNeeds[1] then | |||
skill = "[[" .. recipe.skillNeeds[1][1] .. "]]" | |||
skill_level = tonumber(recipe.skillNeeds[1][2]) or "-" | |||
if recipe.skillNeeds[1] | |||
skill = " | |||
skill_level = | |||
else | else | ||
skill = | skill = "none" | ||
skill_level = | skill_level = "-" | ||
end | end | ||
baseCraftTime = tonumber(recipe.baseCraftTime) | baseCraftTime = tonumber(recipe.baseCraftTime) | ||
if baseCraftTime == 0 then | if not baseCraftTime or baseCraftTime == 0 then | ||
baseCraftTime = | baseCraftTime = "?" | ||
end | end | ||
else | else | ||
for | -- 2) NO RECIPE → CHECK PLANT | ||
if | for _, plantInfo in pairs(plants) do | ||
plant = | if plantInfo.resourceItem == "[[" .. itemName .. "]]" then | ||
plant = plantInfo | |||
break | |||
end | end | ||
end | end | ||
if plant | |||
skill = "Gathering" | if plant then | ||
skill = "[[Gathering]]" | |||
skill_level = 0 | skill_level = 0 | ||
if | |||
created = plant.harvestTool | if plant.harvestTool and plant.killOnHarvest == "Yes" then | ||
created = "[[" .. plant.harvestTool .. "]]" | |||
else | else | ||
created = "none" | created = "none" | ||
end | end | ||
baseCraftTime = 0 | baseCraftTime = 0 | ||
end | end | ||
end | end | ||
------------------------------------------------------------------ | |||
row = row .. "<td>" .. created .. "</td>\n" | |||
row = row .. "<td>" .. skill .. "</td>\n" | |||
row = row .. "<td>" .. skill_level .. "</td>\n" | |||
row = row .. "<td>" .. baseCraftTime .. "</td>\n" | |||
row = row .. "</tr>\n" | |||
wiki = wiki .. row | |||
end | end | ||
end | end | ||
wiki = wiki .. " </table>" | |||
wiki = wiki .. "</table>" | |||
return wiki | return wiki | ||
end | end | ||
return p | return p | ||
Dernière version du 19 novembre 2025 à 01:24
Ce module fournit la fonctionnalité back-end du Template:FoodDetails.
Si le modèle est utilisé, ce module crée un tableau en utilisant les informations provenant des modules suivants :
local p = {}
function p.main()
local wiki = ''
-- import the required modules
local itemData = mw.loadData("Module:ItemData")
local recipeData = mw.loadData("Module:RecipeData")
local plantData = mw.loadData("Module:PlantData")
-- assign modules for use
local items = itemData.items
local recipes = recipeData.recipes
local plants = plantData.plants
-- table header
local header = [=[
<table class="wikitable sortable">
<tr>
<th>Food</th>
<th>Calories</th>
<th data-sort-type="number" style="color: red;">Carbs</th>
<th style="color: orange;">Protein</th>
<th style="color: yellow;">Fat</th>
<th style="color: lightgreen;">Vitamins</th>
<th>Nutrition</th>
<th>Density (/100kcal)</th>
<th>Skill Point Contribution</th>
<th>Created With</th>
<th>Skill Needed</th>
<th>Skill Level</th>
<th data-sort-type="number">Base Crafting Time (Min)</th>
</tr>
]=]
wiki = wiki .. header
for itemName, v in pairs(items) do
if v.group == "Food" then
local row = "<tr>\n"
-- nutrition
local nutrition = (v.vitamins or 0) + (v.carbs or 0) + (v.protein or 0) + (v.fat or 0)
local sp_contribution = nutrition * (v.calories or 0)
row = row .. "<td> [[" .. itemName .. "]] </td>\n"
row = row .. "<td>" .. (v.calories or 0) .. "</td>\n"
row = row .. "<td>" .. (v.carbs or 0) .. "</td>\n"
row = row .. "<td>" .. (v.protein or 0) .. "</td>\n"
row = row .. "<td>" .. (v.fat or 0) .. "</td>\n"
row = row .. "<td>" .. (v.vitamins or 0) .. "</td>\n"
row = row .. "<td>" .. nutrition .. "</td>\n"
row = row .. "<td>" .. (v.density or 0) .. "</td>\n"
row = row .. "<td>" .. sp_contribution .. "</td>\n"
------------------------------------------------------------------
-- FIND SOURCE: recipe or plant
------------------------------------------------------------------
local created = "-"
local skill = "-"
local skill_level = "-"
local baseCraftTime = "-"
local recipe = recipes[itemName]
local plant = nil
-- 1) RECIPE FOUND
if recipe then
if recipe.craftStn and recipe.craftStn[1] then
created = "[[" .. recipe.craftStn[1][1] .. "]]"
end
if recipe.skillNeeds and recipe.skillNeeds[1] then
skill = "[[" .. recipe.skillNeeds[1][1] .. "]]"
skill_level = tonumber(recipe.skillNeeds[1][2]) or "-"
else
skill = "none"
skill_level = "-"
end
baseCraftTime = tonumber(recipe.baseCraftTime)
if not baseCraftTime or baseCraftTime == 0 then
baseCraftTime = "?"
end
else
-- 2) NO RECIPE → CHECK PLANT
for _, plantInfo in pairs(plants) do
if plantInfo.resourceItem == "[[" .. itemName .. "]]" then
plant = plantInfo
break
end
end
if plant then
skill = "[[Gathering]]"
skill_level = 0
if plant.harvestTool and plant.killOnHarvest == "Yes" then
created = "[[" .. plant.harvestTool .. "]]"
else
created = "none"
end
baseCraftTime = 0
end
end
------------------------------------------------------------------
row = row .. "<td>" .. created .. "</td>\n"
row = row .. "<td>" .. skill .. "</td>\n"
row = row .. "<td>" .. skill_level .. "</td>\n"
row = row .. "<td>" .. baseCraftTime .. "</td>\n"
row = row .. "</tr>\n"
wiki = wiki .. row
end
end
wiki = wiki .. "</table>"
return wiki
end
return p