Template:ModuleTableCompareLevels: Difference between revisions

Template page
No edit summary
(Undo revision 1530 by Software2 (talk))
Tag: Undo
Line 1: Line 1:
local p = {}
<!-- IF YOU ADD/REMOVE PROPERTIES HERE, MAKE SURE YOU CHANGE THEM IN THE CSV TEMPLATE AND LUA MODULE AS WELL -->
 
{{#invoke:ModuleLevelTable|process|
local parsedArray = {}
{{#ask:
 
[[-Has subobject::ModuleTestPage]]  
local function addToParsedArray(parsedTable)
|?Module:Name
    parsedArray[#parsedArray+1] = {}
|?Module:Rarity
    for i=1,#parsedTable do
|?Module:Socket
        parsedArray[#parsedArray][i] = parsedTable[i]
|?Module:Class
    end
|?Module:MaxEnhancementLevel
end
|?Module:CapacityCost0
 
|?Module:ExclusiveCategory
local function parseCSV(csvString) -- csvString is one line
|?Module:Effect0
    local result = {}
|?Module:Effect1
    for value in string.gmatch(csvString, '([^,]+)') do
|?Module:Effect2
        table.insert(result, value)
|?Module:Effect3
    end
|?Module:Effect4
    return result
|?Module:Effect5
end
|?Module:Effect6
 
|?Module:Effect7
local function generateTabberLine(element_level)
|?Module:Effect8
    local tabTitle = "|-|Level " .. tostring(element_level) .. "\n"
|?Module:Effect9
    local tabContent = "This is the content of the tab.\n"
|?Module:Effect10
    return tabTitle .. tabContent
|format=template
end
|template=Module Level Table CSV
 
|sep=,  
function p.process(frame)
|link=none
    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
   
    return #parsedArray
 
    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 tabberHeadder .. tabberContent .. tabberFooter
end
 
 
 
return p
 
 
--Debug lines
-- local csvText = "ModuleTestPage#_9a88490adf412a0c81fe3a2fa2d78e3c,Test Module Name,Transcendent,Almandine,High-Power Rounds,10,6,Resource,,,,,,,,,,"

Revision as of 15:21, 4 June 2024

Error: ModuleLevelTable not passed an argument. Report this to Discord!