java.lang.Object
com.minecolonies.core.entity.pathfinding.pathjobs.AbstractPathJob
com.minecolonies.core.entity.pathfinding.pathjobs.PathJobCanSee
All Implemented Interfaces:
IPathJob, ISearchPathJob, Callable<net.minecraft.world.level.pathfinder.Path>

public class PathJobCanSee extends AbstractPathJob implements ISearchPathJob
Pathing job for moving into vision of the given entity
  • Constructor Details

    • PathJobCanSee

      public PathJobCanSee(net.minecraft.world.entity.Mob searchingEntity, net.minecraft.world.entity.LivingEntity lookTarget, net.minecraft.world.level.Level world, @NotNull @NotNull net.minecraft.core.BlockPos searchAroundPos, int range)
  • Method Details

    • computeHeuristic

      protected double computeHeuristic(int x, int y, int z)
      Description copied from class: AbstractPathJob
      Compute the heuristic cost ('h' value) of a given position x,y,z.

      Returning a value of 0 performs a breadth-first search. Returning a value less than actual possible cost to goal guarantees shortest path, but at computational expense. Returning a value exactly equal to the cost to the goal guarantees shortest path and least expense (but generally. only works when path is straight and unblocked). Returning a value greater than the actual cost to goal produces good, but not perfect paths, and is fast. Returning a very high value (such that 'h' is very high relative to 'g') then only 'h' (the heuristic) matters as the search will be a very fast greedy best-first-search, ignoring cost weighting and distance.

      Specified by:
      computeHeuristic in class AbstractPathJob
      Returns:
      the heuristic.
    • isAtDestination

      protected boolean isAtDestination(MNode n)
      Description copied from class: AbstractPathJob
      Return true if the given node is a viable final destination, and the path should generate to here.
      Specified by:
      isAtDestination in class AbstractPathJob
      Parameters:
      n - Node to test.
      Returns:
      true if the node is a viable destination.
    • getEndNodeScore

      public double getEndNodeScore(@NotNull @NotNull MNode n)
      Calculate the distance to the target.
      Specified by:
      getEndNodeScore in interface ISearchPathJob
      Overrides:
      getEndNodeScore in class AbstractPathJob
      Parameters:
      n - Node to test.
      Returns:
      double of the distance.