示例#1
0
        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();
                    }
                }
            }
        }
示例#2
0
 private bool IsBeatViable(Beat beat)
 {
     return(!beat.ExceededMaxRepititions && beat.MeetsPreconditions(_worldState));
 }