No edit summary |
No edit summary |
||
| Line 3: | Line 3: | ||
local parsedArray = {} | local parsedArray = {} | ||
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 | local tabberHeadder = [[ | ||
<tabber> | <tabber> | ||
]] | |||
local tabberContent = "" | |||
for i = 0, tabCount do | |||
tabberContent = tabberContent .. generateTabberLine(i) | |||
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