Module:SpaceBodyLister/Mining
From Terra Invicta Official Wiki
Documentation for this module may be created at Module:SpaceBodyLister/Mining/doc
---
---Reads the SpaceBody data files and computes a table of SpaceBody to Mining Modifiers
--region Dependencies
local SpaceBodyData = mw.loadData('Module:CSVReader/SpaceBody')
--endregion
--region Private constants
--endregion
--region Private member variables
local miningTable = {}
--endregion
--region Private methods
function getMiningTable()
for rowID, row in pairs(SpaceBodyData) do
local spaceBodyMass = row['mass_kg']
local spaceBodyDensity = row['density_gcm3']
local massModifier = 1
local densityModifier = 1
if spaceBodyMass and spaceBodyMass ~= '' and tonumber(spaceBodyMass) then
massModifier = tonumber(spaceBodyMass) / 50000000000000000
if massModifier > 1 then
massModifier = 1
end
end
if spaceBodyDensity and spaceBodyDensity ~= '' and tonumber(spaceBodyDensity) then
if tonumber(spaceBodyDensity) < 1.25 then
densityModifier = tonumber(spaceBodyDensity) / 1.25
elseif tonumber(spaceBodyDensity) > 3 then
densityModifier = tonumber(spaceBodyDensity) / 3
end
end
local modifierA = massModifier
if modifierA < 0.75 then
modifierA = 0.75
end
local modifierB = massModifier * densityModifier
if modifierB < 0.75 then
modifierB = 0.75
elseif modifierB > 1.25 then
modifierB = 1.25
end
miningTable[rowID] = {}
miningTable[rowID]['massModifier'] = massModifier
miningTable[rowID]['densityModifier'] = densityModifier
miningTable[rowID]['modifierA'] = modifierA
miningTable[rowID]['modifierB'] = modifierB
end
return miningTable
end
--endregion
--region Public methods
--endregion
return getMiningTable()


