Module:ModuleLevelTable: Difference between revisions

From The First Descendant Wiki
No edit summary
No edit summary
Line 3: Line 3:
local parsedArray = {}
local parsedArray = {}


local laststring = ""
local function addToParsedArray(parsedTable)
local function addToParsedArray(parsedTable)
     parsedArray[#parsedArray+1] = {}
     parsedArray[#parsedArray+1] = {}
Line 17: Line 16:
     end
     end
     return result
     return result
end
local function generateTabberLine(element_level)
    local tabTitle = "|-|Level " .. tostring(element_level) .. "\n"
    local tabContent = "This is the content of the tab.\n"
    return tabTitle .. tabContent
end
end


Line 55: Line 60:
     --19 |?Module:Effect10
     --19 |?Module:Effect10
      
      
     --local tabCount = parsedArray[1][6] + 1 --Un-upgraded is level 0, so max level + 1
     local tabCount = parsedArray[1][6] + 1 --Un-upgraded is level 0, so max level + 1
      
      
     local tabber = [[
     local tabberHeadder = [[
         <tabber>
         <tabber>
        |-|First Tab Title=
    ]]
         First tab content goes here.
 
        |-|Second Tab Title=
    local tabberContent = ""
        Second tab content goes here.
    for i = 0, tabCount do
        |-|Third Tab Title=
         tabberContent = tabberContent .. generateTabberLine(i)
        Third tab content goes here.
    end
 
    local tabberFooter = [[
         </tabber>
         </tabber>
     ]]
     ]]
Line 70: Line 77:
     return tabber
     return tabber
end
end


return p
return p

Revision as of 15:14, 4 June 2024

Documentation for this module may be created at Module:ModuleLevelTable/doc

local p = {}

local parsedArray = {}

local function addToParsedArray(parsedTable)
    parsedArray[#parsedArray+1] = {}
    for i=1,#parsedTable do
        parsedArray[#parsedArray][i] = parsedTable[i] 
    end
end

local function parseCSV(csvString) -- csvString is one line
    local result = {}
    for value in string.gmatch(csvString, '([^,]+)') do
        table.insert(result, value)
    end
    return result
end

local function generateTabberLine(element_level)
    local tabTitle = "|-|Level " .. tostring(element_level) .. "\n"
    local tabContent = "This is the content of the tab.\n"
    return tabTitle .. tabContent
end

function p.process(frame)
    local csvText = frame.args[1] or ""
    
    -- Put all the CSV lines into an array
    for line in csvText:gmatch("[^\r\n]+") do
        local parsedLine = parseCSV(line)
        if #parsedLine > 0 then
            addToParsedArray(parsedLine)
        end
    end
    
    if #parsedArray == 0 then
        return "Error: ModuleLevelTable had no results. Report this to Discord!"
    end

    -- IMPORTANT! This assumes data is structured EXACTLY in this order! 
    --1 Nonsensical invoking ID
    --2 |?Module:Name
    --3 |?Module:Rarity
    --4 |?Module:Socket
    --5 |?Module:Class
    --6 |?Module:MaxEnhancementLevel
    --7 |?Module:CapacityCost0
    --8 |?Module:ExclusiveCategory
    --9 |?Module:Effect0
    --10 |?Module:Effect1
    --11 |?Module:Effect2
    --12 |?Module:Effect3
    --13 |?Module:Effect4
    --14 |?Module:Effect5
    --15 |?Module:Effect6
    --16 |?Module:Effect7
    --17 |?Module:Effect8
    --18 |?Module:Effect9
    --19 |?Module:Effect10
    
    local tabCount = parsedArray[1][6] + 1 --Un-upgraded is level 0, so max level + 1
    
    local tabberHeadder = [[
        <tabber>
    ]]

    local tabberContent = ""
    for i = 0, tabCount do
        tabberContent = tabberContent .. generateTabberLine(i)
    end

    local tabberFooter = [[
        </tabber>
    ]]
    
    return tabber
end



return p