Rework way we pass spoolup options, so that it's possible to prefer passed values or on-module values as needed

This commit is contained in:
DarkPhoenix
2018-12-13 13:54:53 +03:00
parent 58ceff6144
commit 7a8baac5bd
8 changed files with 117 additions and 93 deletions

View File

@@ -18,11 +18,15 @@
# ===============================================================================
from collections import namedtuple
from enum import IntEnum, unique
from eos.utils.float import floatUnerr
SpoolOptions = namedtuple('SpoolOptions', ('spoolType', 'spoolAmount', 'force'))
@unique
class SpoolType(IntEnum):
SCALE = 0 # [0..1]
@@ -48,3 +52,17 @@ def calculateSpoolup(modMaxValue, modStepValue, modCycleTime, spoolType, spoolAm
return cycles * modStepValue, cycles * modCycleTime
else:
return 0, 0
def resolveSpoolOptions(spoolOptions, module):
# Rely on passed options if they are forcing us to do so
if spoolOptions is not None and spoolOptions.force:
return spoolOptions.spoolType, spoolOptions.spoolAmount
# If we're not forced to use options and module has options set, prefer on-module values
elif module is not None and module.spoolType is not None:
return module.spoolType, module.spoolAmount
# Otherwise - rely on passed options
elif spoolOptions is not None:
return spoolOptions.spoolType, spoolOptions.spoolAmount
else:
return None, None