Ejemplo n.º 1
0
 void DoUpdate(Blackboard request)
 {
     BTLogger.Enabled = logFrames;
     BTLogger.BeginFrame(rootNode);
     _snapshot    = _blackboard.ApplyChanges(request).WithNewOrder();
     _frameResult = rootNode.Update(_snapshot);
     _blackboard.ExecuteOrder(_snapshot.order);
     ExecuteOrder(_snapshot.order);
     BTLogger.EndFrame(rootNode);
 }
Ejemplo n.º 2
0
        public bool IsMatch(Blackboard snapshot)
        {
            var ret = precondition == null || precondition.IsMatch(snapshot);

            BTLogger.Log(this, "IsMatch {0}? {1}", precondition, ret.Pretty());
            // exit running node if precondition is not valid anymore
            if (!ret)
            {
                SetState(NodeState.Finished, snapshot);
            }
            return(ret);
        }
Ejemplo n.º 3
0
        static BTLogger FindLogger(Node node)
        {
            BTLogger logger;

            if (!mapNodeLoggers.TryGetValue(node, out logger))
            {
                if (node.parent != null)
                {
                    logger = FindLogger(node.parent);
                }
                if (logger == null)
                {
                    logger = new BTLogger();
                    mapNodeLoggers[node] = logger;
                }
            }
            return(logger);
        }