public void Update() { if (!Enabled) { return; } UpdateExtraBeat(); if (!IsPlanning && _currentBeat != null && _currentPlan != null) { if (!_currentBeat.Update(_worldState)) { OnBeatFinishedExecution(_currentBeat); _currentBeat = _currentPlan.NextBeat(); if (_currentBeat == null || !_currentBeat.MeetsPreconditions(_worldState)) { Replan(); } else { _currentBeat.Perform(); } } } }
private bool IsBeatViable(Beat beat) { return(!beat.ExceededMaxRepititions && beat.MeetsPreconditions(_worldState)); }