|
|
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,,,,,,,,,,"
| |