Ejemplo n.º 1
0
        public override IEnumerable <Status> Run()
        {
            if (DestinationName != null && Destination == null)
            {
                Destination = Agent.Blackboard.GetData <Zone>(DestinationName);
            }
            if (Tree == null)
            {
                var voxel = Datastructures.SelectRandom(Destination.Voxels);
                Tree = new GoToVoxelAct(VoxelHelpers.GetVoxelAbove(voxel), PlanAct.PlanType.Into, Agent);
                Tree.Initialize();
            }

            if (Tree == null)
            {
                yield return(Status.Fail);
            }
            else
            {
                foreach (Status s in base.Run())
                {
                    yield return(s);
                }
            }
        }
Ejemplo n.º 2
0
        public override IEnumerable <Status> Run()
        {
            if (Tree == null)
            {
                Voxel voxel = Destination.GetNearestVoxel(Agent.Position);

                Tree = new GoToVoxelAct(voxel, PlanAct.PlanType.Adjacent, Agent);

                Tree.Initialize();
            }

            if (Tree == null)
            {
                yield return(Status.Fail);
            }
            else
            {
                foreach (Status s in base.Run())
                {
                    yield return(s);
                }
            }
        }
Ejemplo n.º 3
0
        public override IEnumerable<Status> Run()
        {
            if (Tree == null)
            {
                Voxel voxel = Destination.GetNearestVoxel(Agent.Position);

                Tree = new GoToVoxelAct(voxel, PlanAct.PlanType.Adjacent, Agent);

                Tree.Initialize();
            }

            if (Tree == null)
            {
                yield return Status.Fail;
            }
            else
            {
                foreach (Status s in base.Run())
                {
                    yield return s;
                }
            }
        }