Class PathJobRandomPos

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

public class PathJobRandomPos extends AbstractPathJob implements IDestinationPathJob
Job that handles random pathing.
  • Field Details

    • destination

      @NotNull protected final @NotNull net.minecraft.core.BlockPos destination
      Direction to walk to.
    • minDistFromStart

      protected final int minDistFromStart
      Required avoidDistance.
  • Constructor Details

    • PathJobRandomPos

      public PathJobRandomPos(net.minecraft.world.level.Level world, @NotNull @NotNull net.minecraft.core.BlockPos start, int minDistFromStart, int range, net.minecraft.world.entity.Mob entity)
      Prepares the PathJob for the path finding system.
      Parameters:
      world - world the entity is in.
      start - starting location.
      minDistFromStart - how far to move away.
      range - max range to search.
      entity - the entity.
    • PathJobRandomPos

      public PathJobRandomPos(net.minecraft.world.level.Level world, @NotNull @NotNull net.minecraft.core.BlockPos start, int minDistFromStart, int searchRange, int maxDistToDest, net.minecraft.world.entity.Mob entity, @NotNull @NotNull net.minecraft.core.BlockPos dest)
      Prepares the PathJob for the path finding system.
      Parameters:
      world - world the entity is in.
      start - starting location.
      minDistFromStart - how far to move away.
      searchRange - max range to search.
      entity - the entity.
    • PathJobRandomPos

      public PathJobRandomPos(net.minecraft.world.level.Level world, @NotNull @NotNull net.minecraft.core.BlockPos start, int minDistFromStart, int range, net.minecraft.world.entity.Mob entity, net.minecraft.core.BlockPos startRestriction, net.minecraft.core.BlockPos endRestriction)
      Prepares the PathJob for the path finding system.
      Parameters:
      world - world the entity is in.
      start - starting location.
      minDistFromStart - how far to move away.
      range - max range to search.
      entity - the entity.
    • PathJobRandomPos

      public PathJobRandomPos(net.minecraft.world.level.Level world, @NotNull @NotNull net.minecraft.core.BlockPos start, int minDistFromStart, int range, net.minecraft.world.entity.Mob entity, net.minecraft.core.BlockPos startRestriction, net.minecraft.core.BlockPos endRestriction, boolean preferInside)
      Prepares the PathJob for the path finding system.
      Parameters:
      world - world the entity is in.
      start - starting location.
      minDistFromStart - how far to move away.
      range - max range to search.
      entity - the entity.
      preferInside - if the entity should try to stay inside.
  • 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(@NotNull @NotNull 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

      protected double getEndNodeScore(@NotNull @NotNull MNode n)
      Description copied from class: AbstractPathJob
      Calculates a score for potential points where the path may end given no destination By default the heuristic for the closest node is used
      Overrides:
      getEndNodeScore in class AbstractPathJob
      Parameters:
      n - Node to test.
      Returns:
      score for the node, lower is better
    • setPathingOptions

      public void setPathingOptions(PathingOptions pathingOptions)
      Description copied from class: AbstractPathJob
      Sets the pathing options
      Overrides:
      setPathingOptions in class AbstractPathJob
      Parameters:
      pathingOptions - the pathing options to set.
    • getDestination

      public net.minecraft.core.BlockPos getDestination()
      Description copied from interface: IDestinationPathJob
      Return the destination
      Specified by:
      getDestination in interface IDestinationPathJob
      Returns:
      destination
    • isJobFor

      public static boolean isJobFor(AbstractPathJob job, net.minecraft.core.BlockPos center, int range)
      Helper to compare if the given random pos job matches the input parameters
      Returns:
      true if the given job is the same