private GeneratedDirections GenerateDirections(IEntity ent) { // generate directions var data = PathingUtils.WalkTo( ent.GetTransform(), Waypoints[_currentWaypointIndex]) .Take(2) .ToArray(); return(new GeneratedDirections(data[0], data[1])); }
public GeneratedDirections GetNextDirections(IEntity ent) { if (Target.IsDead()) { return(GeneratedDirections.Noop); } var entityTranfrom = ent.GetTransform(); var targetTransform = Target.Get().GetTransform(); var targetPosition = GetTargetPosition(targetTransform); // Use WalkTo pathing, then take two directions from it and conver it to an array. // Doing all of these skips us from dealing with enumerators. // Since WalkTo is guaranteed to return noops if we're on top of the target, we don't need to worry about going out of range. var data = PathingUtils.WalkTo(entityTranfrom, targetPosition).Take(2).ToArray(); return(new GeneratedDirections(data[0], data[1])); }