public StokerMode CycleMode(int step = 1) { var newMode = (int)_mode + step; _mode = newMode >= 0 ? (StokerMode)(newMode % 4) : (StokerMode)((newMode + 4) % 4); if (_mode == StokerMode.Off) { _turningOff = true; } _coalTarget = _mode switch { StokerMode.Off => 0, StokerMode.Low => CoalLevelLow, StokerMode.Medium => CoalLevelMed, StokerMode.High => CoalLevelHigh, _ => throw new ArgumentOutOfRangeException(nameof(_mode)) }; return(_mode); }
public void Reset() { _mode = StokerMode.Off; _coalTarget = 0; _timeTilNextShovel = 0; }