Module:SpaceBodyLister/System

From Terra Invicta Official Wiki

Documentation for this module may be created at Module:SpaceBodyLister/System/doc

---
---Reads the SpaceBody data files and computes a table of SpaceBody to Mining Modifiers

--region Dependencies
local SpaceBodyData = mw.loadData('Module:CSVReader/SpaceBody')
local MetaData = mw.loadData('Module:CSVReader/Meta')
--endregion

--region Private constants
local sizeNames = {
	'VeryLightSolarSystemBodies',
	'LightSolarSystemBodies',
	'MediumSolarSystemBodies',
	'CompleteSolarSystemBodies',
	'MegaSolarSystemBodies'
}
--endregion

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

--region Private methods

function getSystemTable()
	local sizeBodies = {}
	for i = 1, 5 do
		sizeBodies[i] = {}
		for j = 0, 500 do
			if not MetaData[sizeNames[i]]['templateNames/' .. j] then
				break
			end
			sizeBodies[i][MetaData[sizeNames[i]]['templateNames/' .. j]] = true
		end
	end

	for rowID, row in pairs(SpaceBodyData) do
		systemTable[rowID] = {}
		for i = 1, 5 do
			if sizeBodies[i][rowID] then
				systemTable[rowID][i] = true
			else
				systemTable[rowID][i] = false
			end
		end
	end
	return systemTable
end

--endregion

--region Public methods
--endregion

return getSystemTable()