Esempio n. 1
0
 public void ActionFinish(IApeAction action)
 {
     foreach (var logger in _loggers)
     {
         logger.ActionFinish(action);
     }
 }
Esempio n. 2
0
 public void ActionStart(IApeAction action)
 {
     foreach (var logger in _loggers)
     {
         logger.ActionStart(action);
     }
 }
Esempio n. 3
0
 private void RunningTaskFinishCheck()
 {
     if (_runningTask != null)
     {
         if (_runningTask.Status == TaskStatus.RanToCompletion ||
             _runningTask.Status == TaskStatus.Canceled ||
             _runningTask.Status == TaskStatus.Faulted)
         {
             _logger.ActionFinish(_runningAction);
             _runningAction = null;
             _runningTask   = null;
         }
     }
 }
Esempio n. 4
0
 public Condition(Func <State> func, IApeAction action)
 {
     _func   = func;
     _action = action;
 }
Esempio n. 5
0
 public void ActionFinish(IApeAction action)
 {
 }
Esempio n. 6
0
 public void ActionStart(IApeAction action)
 {
     Debug.Log($"ApeTest | [{Time.frameCount}/{Time.time:0.00}] {action}");
 }
Esempio n. 7
0
        public bool Update()
        {
            if (Disposed)
            {
                return(false);
            }

            if (!_started)
            {
                OnStart();
            }

            RunningTaskFinishCheck();
            if (_runningTask != null)
            {
                return(true);
            }

            var executeForce = new List <IApeAction>();
            var random       = new List <IApeAction>();

            try
            {
                foreach (var action in _actions)
                {
                    var state = action.CheckState();
                    if (state == State.ExecuteForce)
                    {
                        executeForce.Add(action);
                    }
                    if (state == State.Execute)
                    {
                        random.Add(action);
                    }
                }
            }
            catch (ApeTestFinishException e)
            {
                _logger.TestFinish(e);
                DisposeInternal();
                return(false);
            }

            if (executeForce.Count > 0)
            {
                var action = executeForce[0];
                _cancellationTokenSource = new CancellationTokenSource();
                _logger.ActionStart(action);
                _runningAction = action;
                _runningTask   = action.Run(_cancellationTokenSource.Token);
            }
            else
            {
                var pickedAction = random.RandomPick();
                if (pickedAction != null)
                {
                    _cancellationTokenSource = new CancellationTokenSource();
                    _logger.ActionStart(pickedAction);
                    _runningAction = pickedAction;
                    _runningTask   = pickedAction.Run(_cancellationTokenSource.Token);
                }
            }
            RunningTaskFinishCheck();

            return(true);
        }