Module:ProjectLister/Projects

From Terra Invicta Official Wiki

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

---
---Reads the Project data files and computes a table of Project to Project unlocks

--region Dependencies
local ProjectData = mw.loadData('Module:CSVReader/Project')
--endregion

--region Private constants
--endregion

--region Private member variables
local projectTable = {}
--endregion

--region Private methods

function getProjectTable()
	for rowID, row in pairs(ProjectData) do
		if not row['disable'] or row['disable'] ~= 'true' then
			local prereq = row['altPrereq0']
			if prereq and prereq ~= '' and prereq ~= 0 and string.sub(prereq,1,7) == 'Project'  then
				if not projectTable[prereq] then
					projectTable[prereq] = {}
				end
				projectTable[prereq][rowID] = true
			end
			for i = 0, 4 do
				prereq = row['prereqs/' .. i]
				if prereq and prereq ~= '' and prereq ~= 0 and string.sub(prereq,1,7) == 'Project'  then
					if not projectTable[prereq] then
						projectTable[prereq] = {}
					end
					projectTable[prereq][rowID] = true
				end
			end
		end
	end
	return projectTable
end

--endregion

--region Public methods
--endregion

return getProjectTable()