示例#1
0
        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);
        }
示例#2
0
 public void Reset()
 {
     _mode              = StokerMode.Off;
     _coalTarget        = 0;
     _timeTilNextShovel = 0;
 }