Ejemplo n.º 1
0
 public void RegisterRunning(TreeTask <TBb> task)
 {
     CurrentlyRunning.Add(task);
     // We remove it here to spare some cycles later on.
     if (task.PreviousTickState == TaskState.Running)
     {
         PreviouslyRunning.Remove(task);
     }
     // The first one to report running is the deepest running one
     if (RunningTask == null)
     {
         RunningTask = task;
     }
 }
Ejemplo n.º 2
0
        private bool TryToRerunPreviouslyRunningTask()
        {
            if (CurrentState == TaskState.Running &&
                RunningTaskHysterisis < _taskHysterisisRuns &&
                Context.RunningTask != null)
            {
                TreeTask <TBb> task = Context.RunningTask;
                _taskHysterisisRuns++;
                task.Tick();

                if (task.State == TaskState.Running)
                {
                    return(true);
                }
            }
            return(false);
        }
Ejemplo n.º 3
0
        LispParser.ICanCreateFromLispParseTree <TBb> LispParser.ICanCreateFromLispParseTree <TBb> .CreateFromParseTree(TBb blackboard, LispParser.Node node, LispParser.ICompiler <TBb> compiler)
        {
            LispParser.MethodNode method = node as LispParser.MethodNode;
            if (method == null)
            {
                return(null);
            }

            if (method.MethodName == GetClassName())
            {
                TreeTask <TBb> treeTask = CreateTreeTaskFromParseTree(blackboard, method, compiler);
                foreach (LispParser.Node child in method.Children)
                {
                    child.NamedParamX <LispParser.StringNode>("Name", v => treeTask.Name = v.Value);
                }
                return(treeTask);
            }
            else
            {
                return(null);
            }
        }
Ejemplo n.º 4
0
 public void RegisterNoLongerRunning(TreeTask <TBb> task)
 {
     PreviouslyRunning.Remove(task);
 }
Ejemplo n.º 5
0
 public Counter(TreeTask <TBb> decoratedTask)
     : base(decoratedTask)
 {
 }
Ejemplo n.º 6
0
 public AlwaysFail(TreeTask <TBb> decoratedTask)
     : base(decoratedTask)
 {
 }
Ejemplo n.º 7
0
 protected Decorator(TreeTask <TBb> decoratedTask)
     : this(null, decoratedTask)
 {
 }
Ejemplo n.º 8
0
 public AlwaysSucceed(TreeTask <TBb> decoratedTask)
     : base(decoratedTask)
 {
 }
Ejemplo n.º 9
0
 protected Decorator(string name, TreeTask <TBb> decoratedTask)
     : base(name)
 {
     DecoratedTask = decoratedTask;
 }
Ejemplo n.º 10
0
 public RunNTimes(TreeTask <TBb> decoratedTask)
     : base(decoratedTask)
 {
 }
Ejemplo n.º 11
0
 public RunOnce(TreeTask <TBb> decoratedTask)
     : base(decoratedTask)
 {
 }
Ejemplo n.º 12
0
 public UntilSuccess(TreeTask <TBb> decoratedTask)
     : base(decoratedTask)
 {
 }
Ejemplo n.º 13
0
 public UntilFail(TreeTask <TBb> decoratedTask)
     : base(decoratedTask)
 {
 }
Ejemplo n.º 14
0
 public Invert(TreeTask <TBb> decoratedTask)
     : base(decoratedTask)
 {
 }
Ejemplo n.º 15
0
 public BehaviourTree(string name, TreeTask <TBb> rootTask)
 {
     Name     = name;
     RootTask = rootTask;
     RunningTaskHysterisis = 10;
 }
Ejemplo n.º 16
0
 public SemaphoreGuard(TreeTask <TBb> decoratedTask)
     : base(decoratedTask)
 {
 }
Ejemplo n.º 17
0
 public TaskUtility(LispOperator <TBb> utilityComputer, TreeTask <TBb> task)
 {
     UtilityComputer = utilityComputer;
     Task            = task;
 }