Class PathJobMoveCloseToXNearY
java.lang.Object
com.minecolonies.core.entity.pathfinding.pathjobs.AbstractPathJob
com.minecolonies.core.entity.pathfinding.pathjobs.PathJobMoveCloseToXNearY
- All Implemented Interfaces:
IPathJob,IDestinationPathJob,Callable<net.minecraft.world.level.pathfinder.Path>
Job that handles moving close to a position near another
-
Field Summary
FieldsModifier and TypeFieldDescriptionfinal net.minecraft.core.BlockPosPosition to go close tofinal intRequired distance to reachfinal net.minecraft.core.BlockPosPosition to stay nearbyFields inherited from class com.minecolonies.core.entity.pathfinding.pathjobs.AbstractPathJob
cachedBlockLookup, debugDrawEnabled, debugNodesExtra, debugNodesNotVisited, debugNodesOrgPath, debugNodesPath, debugNodesVisited, debugNodesVisitedLater, entity, extraNodes, heuristicMod, MAX_NODES, maxNodes, result, start, tempWorldPos, totalNodesVisited, world -
Constructor Summary
ConstructorsConstructorDescriptionPathJobMoveCloseToXNearY(net.minecraft.world.level.Level world, net.minecraft.core.BlockPos desiredPosition, net.minecraft.core.BlockPos nearbyPosition, int distToDesired, net.minecraft.world.entity.Mob entity) -
Method Summary
Modifier and TypeMethodDescriptionprotected doublecomputeHeuristic(int x, int y, int z) Compute the heuristic cost ('h' value) of a given position x,y,z.net.minecraft.core.BlockPosReturn the destinationprotected doublegetEndNodeScore(@NotNull MNode n) Calculates a score for potential points where the path may end given no destination By default the heuristic for the closest node is usedprotected booleanisAtDestination(@NotNull MNode n) Return true if the given node is a viable final destination, and the path should generate to here.static booleanisJobFor(AbstractPathJob job, net.minecraft.core.BlockPos desiredPosition, net.minecraft.core.BlockPos nearbyPosition, int distance) Helper to compare if the given move close to X near Y job matches the input parametersprotected booleanstopOnNodeLimit(int totalNodesVisited, MNode bestNode, int nodesSinceEndNode) Stops the pathjob when hitting a node limitMethods inherited from class com.minecolonies.core.entity.pathfinding.pathjobs.AbstractPathJob
call, computeCost, exploreInDirection, getActualWorld, getEntity, getGroundHeight, getPathingOptions, getResult, getStart, handleDebugOptions, initDebug, isPassable, isPassable, modifyCost, search, setPathingOptions, syncDebug, toString, visitNode
-
Field Details
-
desiredPosition
public final net.minecraft.core.BlockPos desiredPositionPosition to go close to -
nearbyPosition
public final net.minecraft.core.BlockPos nearbyPositionPosition to stay nearby -
distToDesired
public final int distToDesiredRequired distance to reach
-
-
Constructor Details
-
PathJobMoveCloseToXNearY
public PathJobMoveCloseToXNearY(net.minecraft.world.level.Level world, net.minecraft.core.BlockPos desiredPosition, net.minecraft.core.BlockPos nearbyPosition, int distToDesired, net.minecraft.world.entity.Mob entity)
-
-
Method Details
-
computeHeuristic
protected double computeHeuristic(int x, int y, int z) Description copied from class:AbstractPathJobCompute 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:
computeHeuristicin classAbstractPathJob- Returns:
- the heuristic.
-
isAtDestination
Description copied from class:AbstractPathJobReturn true if the given node is a viable final destination, and the path should generate to here.- Specified by:
isAtDestinationin classAbstractPathJob- Parameters:
n- Node to test.- Returns:
- true if the node is a viable destination.
-
getEndNodeScore
Description copied from class:AbstractPathJobCalculates a score for potential points where the path may end given no destination By default the heuristic for the closest node is used- Overrides:
getEndNodeScorein classAbstractPathJob- Parameters:
n- Node to test.- Returns:
- score for the node, lower is better
-
stopOnNodeLimit
Description copied from class:AbstractPathJobStops the pathjob when hitting a node limit- Overrides:
stopOnNodeLimitin classAbstractPathJob- Returns:
-
getDestination
public net.minecraft.core.BlockPos getDestination()Description copied from interface:IDestinationPathJobReturn the destination- Specified by:
getDestinationin interfaceIDestinationPathJob- Returns:
- destination
-
isJobFor
public static boolean isJobFor(AbstractPathJob job, net.minecraft.core.BlockPos desiredPosition, net.minecraft.core.BlockPos nearbyPosition, int distance) Helper to compare if the given move close to X near Y job matches the input parameters- Returns:
- true if the given job is the same
-