Class PathJobPathway
java.lang.Object
com.minecolonies.core.entity.pathfinding.pathjobs.AbstractPathJob
com.minecolonies.core.entity.pathfinding.pathjobs.PathJobPathway
- All Implemented Interfaces:
IPathJob,IDestinationPathJob,Callable<net.minecraft.world.level.pathfinder.Path>
Path job to find a path between buildings
-
Field Summary
Fields 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
ConstructorsConstructorDescriptionPathJobPathway(int colonyID, List<IBuilding> buildings, net.minecraft.world.level.Level world, @NotNull net.minecraft.core.BlockPos start, net.minecraft.core.BlockPos end, EntityCitizen citizen) -
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 doubleCalculates a score for potential points where the path may end given no destination By default the heuristic for the closest node is usedprotected booleanReturn true if the given node is a viable final destination, and the path should generate to here.protected booleanisPassable(int x, int y, int z, boolean head, MNode currentnode) Checks passabilityprotected doublemodifyCost(double stepCost, MNode parent, boolean swimstart, boolean swimming, int x, int y, int z, net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.block.state.BlockState below) Modifies costs if needed for a nodeMethods inherited from class com.minecolonies.core.entity.pathfinding.pathjobs.AbstractPathJob
call, computeCost, exploreInDirection, getActualWorld, getEntity, getGroundHeight, getPathingOptions, getResult, getStart, handleDebugOptions, initDebug, isPassable, search, setPathingOptions, stopOnNodeLimit, syncDebug, toString, visitNode
-
Constructor Details
-
PathJobPathway
public PathJobPathway(int colonyID, List<IBuilding> buildings, net.minecraft.world.level.Level world, @NotNull @NotNull net.minecraft.core.BlockPos start, net.minecraft.core.BlockPos end, EntityCitizen citizen)
-
-
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
-
isPassable
Description copied from class:AbstractPathJobChecks passability- Overrides:
isPassablein classAbstractPathJob- Parameters:
x-y-z-head-currentnode-- Returns:
-
modifyCost
protected double modifyCost(double stepCost, MNode parent, boolean swimstart, boolean swimming, int x, int y, int z, net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.block.state.BlockState below) Description copied from class:AbstractPathJobModifies costs if needed for a node- Overrides:
modifyCostin classAbstractPathJob- Parameters:
stepCost-parent-swimstart-swimming-state-- Returns:
-
getDestination
public net.minecraft.core.BlockPos getDestination()Description copied from interface:IDestinationPathJobReturn the destination- Specified by:
getDestinationin interfaceIDestinationPathJob- Returns:
- destination
-