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

Материал из Eco - Русская Wiki
Перейти к:навигация, поиск
[досмотренная версия][досмотренная версия]
Нет описания правки
Нет описания правки
Строка 45: Строка 45:


     if (RecipeList ~= "") then
     if (RecipeList ~= "") then
         CraftTable = CraftTable .. "<table><tr><th>Test</th></tr>";
         CraftTable = CraftTable .. "<table><tr><th>Products</th><th>Ingredients</th></tr>";
         for RecipeName in string.gmatch(RecipeList, "([^,]+)") do
         for RecipeName in string.gmatch(RecipeList, "([^,]+)") do
             local CraftTableRow = "<tr>";
             local CraftTableRow = "";
             local RecipeData = RecipesData.recipes[RecipeName];
             local RecipeData = RecipesData.recipes[RecipeName];
             local CraftTableRow = "<td>" .. RecipeName .. "</td>";
             CraftTableRow = "<td>" .. RecipeName .. "</td>";
              
              
            local RecipeProducts = "";
             for ProductName,ProductData in pairs(RecipeData.Products) do
             for ProductName,ProductData in pairs(RecipeData.Products) do
                  
                 RecipeProducts = RecipeProducts .. ProductName .. ",";
                 
             end
             end
             CraftTable = CraftTable .. CraftTableRow .. "</tr>";
            CraftTableRow = CraftTableRow .. "<td>" .. RecipeProducts .. "</td>";
 
            local RecipeIngredients = "";
            for IngredientName,IngredientData in pairs(RecipeData.Ingredients) do
                RecipeIngredients = RecipeIngredients .. IngredientName .. ",";
            end
            CraftTableRow = CraftTableRow .. "<td>" .. RecipeIngredients .. "</td>";
 
             CraftTable = CraftTable .. "<tr>" ..CraftTableRow .. "</tr>";
         end
         end
         CraftTable = CraftTable .. "</table>";   
         CraftTable = CraftTable .. "</table>";   

Версия от 20:52, 19 августа 2025

Для документации этого модуля может быть создана страница Модуль:RecipeUtils/doc

local Utils = require('Module:Utils')
local RecipesData = require('Module:RecipeData')
local ItemsData = require('Module:ItemData')
local p = {}

function p.ItemCraft(ItemName)
    local Recipes = ""
    for RecipeName,RecipeData in pairs(RecipesData.recipes) do
        for ProductName,ProductData in pairs(RecipeData.Products) do
            if ProductName == ItemName and ProductData.Type == "ITEM" then
                if (Recipes == "") then Recipes = Recipes .. RecipeName else Recipes = Recipes .. "," .. RecipeName end
            end
        end
    end
           
    return Recipes
end

function p.TagIngredient(TagName)
    local Recipes = ""
    for RecipeName,RecipeData in pairs(RecipesData.recipes) do
        for IngredientName,IngredientData in pairs(RecipeData.Ingredients) do
            if IngredientName == TagName and IngredientData.Type == "TAG" then
                if (Recipes == "") then Recipes = Recipes .. RecipeName else Recipes = Recipes .. "," .. RecipeName end
            end
        end
    end
    return Recipes
end

function p.ItemIngredient(ItemName)
    local Recipes = ""
    for RecipeName,RecipeData in pairs(RecipesData.recipes) do
        for IngredientName,IngredientData in pairs(RecipeData.Ingredients) do
            if IngredientName == ItemName and IngredientData.Type == "ITEM" then
                if (Recipes == "") then Recipes = Recipes .. RecipeName else Recipes = Recipes .. "," .. RecipeName end
            end
        end
    end
    return Recipes
end

function p.CraftTable(RecipeList)
    local CraftTable = ""

    if (RecipeList ~= "") then
        CraftTable = CraftTable .. "<table><tr><th>Products</th><th>Ingredients</th></tr>";
        for RecipeName in string.gmatch(RecipeList, "([^,]+)") do
            local CraftTableRow = "";
            local RecipeData = RecipesData.recipes[RecipeName];
            CraftTableRow = "<td>" .. RecipeName .. "</td>";
            
            local RecipeProducts = "";
            for ProductName,ProductData in pairs(RecipeData.Products) do
                RecipeProducts = RecipeProducts .. ProductName .. ",";
            end
            CraftTableRow = CraftTableRow .. "<td>" .. RecipeProducts .. "</td>";

            local RecipeIngredients = "";
            for IngredientName,IngredientData in pairs(RecipeData.Ingredients) do
                RecipeIngredients = RecipeIngredients .. IngredientName .. ",";
            end
            CraftTableRow = CraftTableRow .. "<td>" .. RecipeIngredients .. "</td>";

            CraftTable = CraftTable .. "<tr>" ..CraftTableRow .. "</tr>";
        end
        CraftTable = CraftTable .. "</table>";  
    end
    return CraftTable
end

return p