コード例 #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;
     }
 }
コード例 #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);
        }
コード例 #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);
            }
        }
コード例 #4
0
 public void RegisterNoLongerRunning(TreeTask <TBb> task)
 {
     PreviouslyRunning.Remove(task);
 }
コード例 #5
0
 public Counter(TreeTask <TBb> decoratedTask)
     : base(decoratedTask)
 {
 }
コード例 #6
0
ファイル: Decorators.cs プロジェクト: mfagerlund/Beehive
 public AlwaysFail(TreeTask <TBb> decoratedTask)
     : base(decoratedTask)
 {
 }
コード例 #7
0
ファイル: Decorators.cs プロジェクト: mfagerlund/Beehive
 protected Decorator(TreeTask <TBb> decoratedTask)
     : this(null, decoratedTask)
 {
 }
コード例 #8
0
ファイル: Decorators.cs プロジェクト: mfagerlund/Beehive
 public AlwaysSucceed(TreeTask <TBb> decoratedTask)
     : base(decoratedTask)
 {
 }
コード例 #9
0
ファイル: Decorators.cs プロジェクト: mfagerlund/Beehive
 protected Decorator(string name, TreeTask <TBb> decoratedTask)
     : base(name)
 {
     DecoratedTask = decoratedTask;
 }
コード例 #10
0
ファイル: Decorators.cs プロジェクト: mfagerlund/Beehive
 public RunNTimes(TreeTask <TBb> decoratedTask)
     : base(decoratedTask)
 {
 }
コード例 #11
0
ファイル: Decorators.cs プロジェクト: mfagerlund/Beehive
 public RunOnce(TreeTask <TBb> decoratedTask)
     : base(decoratedTask)
 {
 }
コード例 #12
0
ファイル: Decorators.cs プロジェクト: mfagerlund/Beehive
 public UntilSuccess(TreeTask <TBb> decoratedTask)
     : base(decoratedTask)
 {
 }
コード例 #13
0
ファイル: Decorators.cs プロジェクト: mfagerlund/Beehive
 public UntilFail(TreeTask <TBb> decoratedTask)
     : base(decoratedTask)
 {
 }
コード例 #14
0
ファイル: Decorators.cs プロジェクト: mfagerlund/Beehive
 public Invert(TreeTask <TBb> decoratedTask)
     : base(decoratedTask)
 {
 }
コード例 #15
0
 public BehaviourTree(string name, TreeTask <TBb> rootTask)
 {
     Name     = name;
     RootTask = rootTask;
     RunningTaskHysterisis = 10;
 }
コード例 #16
0
ファイル: Decorators.cs プロジェクト: mfagerlund/Beehive
 public SemaphoreGuard(TreeTask <TBb> decoratedTask)
     : base(decoratedTask)
 {
 }
コード例 #17
0
ファイル: UtilitySelector.cs プロジェクト: mfagerlund/Beehive
 public TaskUtility(LispOperator <TBb> utilityComputer, TreeTask <TBb> task)
 {
     UtilityComputer = utilityComputer;
     Task            = task;
 }