Template:ModuleTableCompareLevels

Template page
Revision as of 15:20, 4 June 2024 by Software2 (talk | contribs)

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
   
   return #parsedArray
   local tabCount = parsedArray[1][6] + 1 --Un-upgraded is level 0, so max level + 1
   
   local tabberHeadder = [[

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

   ]]
   
   return tabberHeadder .. tabberContent .. tabberFooter

end


return p


--Debug lines -- local csvText = "ModuleTestPage#_9a88490adf412a0c81fe3a2fa2d78e3c,Test Module Name,Transcendent,Almandine,High-Power Rounds,10,6,Resource,,,,,,,,,,"