bool update(double dt) { _currentTime += dt * _timeMax; if (_currentTime >= interval) { tick?.call(); _currentTime = 0; return true; } return false; }