Class AStarBase

java.lang.Object
com.hypixel.hytale.server.npc.navigation.AStarBase
Direct Known Subclasses:
AStarWithTarget

public class AStarBase extends Object
Base class for A* algorithms

Because the target estimate is not used in the base version it is equivalent to a Dijkstra algorithm .

Since:
2018-03-17
  • Field Details

  • Constructor Details

    • AStarBase

      public AStarBase()
  • Method Details

    • setCanMoveDiagonal

      public void setCanMoveDiagonal(boolean canMoveDiagonal)
    • setMaxPathLength

      public void setMaxPathLength(int maxPathLength)
    • setOpenNodesLimit

      public void setOpenNodesLimit(int openNodesLimit)
    • setTotalNodesLimit

      public void setTotalNodesLimit(int totalNodesLimit)
    • setStartPosition

      public void setStartPosition(@Nonnull org.joml.Vector3d position)
    • getStartPosition

      @Nonnull public org.joml.Vector3d getStartPosition()
    • setOptimizedBuildPath

      public void setOptimizedBuildPath(boolean optimizedBuildPath)
    • getEvaluator

      public AStarEvaluator getEvaluator()
    • getOpenNodes

      @Nonnull public List<AStarNode> getOpenNodes()
    • getOpenCount

      public int getOpenCount()
    • getVisitedBlocks

      @Nonnull public it.unimi.dsi.fastutil.longs.Long2ObjectMap<AStarNode> getVisitedBlocks()
    • getStartPositionIndex

      public long getStartPositionIndex()
    • getPath

      @Nullable public AStarNode getPath()
    • getPosition

      @Nullable public org.joml.Vector3d getPosition()
    • getLength

      public int getLength()
    • getIterations

      public int getIterations()
    • getEndPosition

      @Nullable public org.joml.Vector3d getEndPosition()
    • clearPath

      public void clearPath()
    • initComputePath

      public AStarBase.Progress initComputePath(@Nonnull Ref<EntityStore> ref, @Nonnull org.joml.Vector3d start, AStarEvaluator evaluator, @Nonnull MotionController motionController, @Nonnull ProbeMoveData probeMoveData, @Nonnull AStarNodePoolProvider nodePoolProvider, @Nonnull ComponentAccessor<EntityStore> componentAccessor)
    • computePath

      public AStarBase.Progress computePath(@Nonnull Ref<EntityStore> ref, @Nonnull MotionController motionController, @Nonnull ProbeMoveData probeMoveData, int nodesToProcess, @Nonnull ComponentAccessor<EntityStore> componentAccessor)
    • getProgress

      public AStarBase.Progress getProgress()
    • isComputing

      public boolean isComputing()
    • buildLongestPath

      public float buildLongestPath()
    • buildFurthestPath

      public float buildFurthestPath()
    • buildBestPath

      @Nullable public AStarNode buildBestPath(@Nonnull ToFloatFunction<AStarNode> weight, @Nonnull BiFloatPredicate predicate, float initialValue)
    • findBestVisitedNode

      @Nullable public AStarNode findBestVisitedNode(@Nonnull ToFloatFunction<AStarNode> weight, @Nonnull BiFloatPredicate predicate, float initialValue)
    • buildBestPath

      @Nullable public <T> AStarNode buildBestPath(@Nonnull BiToFloatFunction<AStarNode, T> weight, @Nonnull BiFloatPredicate predicate, float initialValue, T obj)
    • findBestVisitedNode

      @Nullable public <T> AStarNode findBestVisitedNode(@Nonnull BiToFloatFunction<AStarNode, T> weight, @Nonnull BiFloatPredicate predicate, float initialValue, T obj)
    • createDebugHelper

      @Nonnull public AStarDebugBase createDebugHelper(@Nonnull HytaleLogger logger)
    • indexFromXYZ

      public static long indexFromXYZ(long dx, long dy, long dz)
    • zFromIndex

      public static int zFromIndex(long index)
    • yFromIndex

      public static int yFromIndex(long index)
    • xFromIndex

      public static int xFromIndex(long index)
    • positionIndexToString

      @Nonnull public static String positionIndexToString(long index)