advance method

  1. @override
double advance(
  1. double dt
)
override

Advances this controller's internal clock by dt, returning any leftover time once finished.

Implementation

@override
double advance(double dt) {
  var overflow = child.advance(dt);

  while (overflow > 0 && _remaining > 0) {
    _remaining -= 1;

    if (_remaining != 0) {
      child.setToStart();
      overflow = child.advance(overflow);
    }
  }

  if (_remaining == 1 && child.isFinished) _remaining -= 1;
  return overflow;
}