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); } } }
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); } } }
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; } } }