TreeSharp.Sequence.Execute C# (CSharp) Method

Execute() public method

public Execute ( object context ) : IEnumerable
context object
return IEnumerable
        public override IEnumerable<RunStatus> Execute(object context)
        {
            if (ContextChanger != null)
            {
                context = ContextChanger(context);
            }
            foreach (Composite node in Children)
            {
                node.Start(context);
                while (node.Tick(context) == RunStatus.Running)
                {
                    Selection = node;
                    yield return RunStatus.Running;
                }

                Selection = null;
                node.Stop(context);

                if (node.LastStatus == RunStatus.Failure)
                {
                    yield return RunStatus.Failure;
                    yield break;
                }
            }
            yield return RunStatus.Success;
            yield break;
        }