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]));
        }
Ejemplo n.º 2
0
        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]));
        }