Module:Breaking row

From Tensura Wiki
Jump to navigation Jump to search

This module implements {{breaking row}}

Dependencies


local p = {}

function p.row(f)
    local args = f:getParent().args  -- Directly get arguments
    local sprite = require("Module:SpriteFile")  -- Include SpriteFile for icons

    local rows = {}
    local blocks = mw.text.split(args[1] or '', ';')
    local tools = mw.text.split(args[2] or '', ';')

    -- Mapping correct sprite names for tools with hyphens
    local spriteMap = {
        Wooden = "wooden-pickaxe",
        Stone = "stone-pickaxe",
        Iron = "iron-pickaxe",
        Diamond = "diamond-pickaxe",
        Netherite = "netherite-pickaxe",
        Golden = "golden-pickaxe",
        Pickaxe = "iron-pickaxe"  -- Default for generic 'Pickaxe'
    }

    -- Start the table
    table.insert(rows, '{| class="wikitable" style="text-align:center"')
    table.insert(rows, '|-')
    table.insert(rows, '! Block !! Tool !! Breaking Time !! Icon')

    -- Insert rows for each block-tool pair
    for i, block in ipairs(blocks) do
        local tool = mw.text.trim(tools[i] or tools[1] or 'Any')
        local breakingTime = "1.25"  -- Placeholder breaking time

        -- Correct sprite selection using the mapping with hyphens
        local spriteName = spriteMap[tool] or (tool:lower() .. "-pickaxe")

        -- Add sprite for the tool with proper display text
        local toolSprite, spriteCat = sprite.sprite{
            name = "ItemSprite",
            spriteName,
            text = tool .. " Pickaxe"  -- Corrected text
        }

        table.insert(rows, '|-')
        table.insert(rows, '| ' .. mw.text.trim(block) .. ' || ' .. tool .. ' || ' .. breakingTime .. ' sec || ' .. toolSprite)
    end

    -- Close the table
    table.insert(rows, '|}')

    return table.concat(rows, '\n')
end

return p