Class AstarPathFinder

java.lang.Object
cn.lanink.gamecore.pathfinder.astar.AstarPathFinder
All Implemented Interfaces:
PathFinder

public class AstarPathFinder extends Object implements PathFinder
Author:
iGxnon https://github.com/iGxnon/SquarePet/blob/main/src/main/java/xyz/lightsky/squarepet/pet/pathfinder/astar/AstarPathfinder.java
  • Field Details

    • DEFAULT_TIME_LIMIT

      public static final int DEFAULT_TIME_LIMIT
      See Also:
    • DEFAULT_POWER

      public static final double DEFAULT_POWER
      See Also:
    • open

      private final HashMap<cn.nukkit.block.Block,AstarNode> open
    • close

      private final HashSet<AstarNode> close
    • start

      private final cn.nukkit.level.Position start
    • target

      private final cn.nukkit.level.Position target
    • timeLimit

      private final long timeLimit
    • power

      private double power
    • asyncWork

      private final boolean asyncWork
    • isFinished

      private boolean isFinished
    • isSearching

      private boolean isSearching
    • result

      private AstarNode result
    • resultList

      private List<cn.nukkit.math.Vector3> resultList
    • resultNodeList

      private List<AstarNode> resultNodeList
    • currentNode

      protected AtomicInteger currentNode
  • Constructor Details

    • AstarPathFinder

      public AstarPathFinder(cn.nukkit.level.Position start, cn.nukkit.level.Position target)
    • AstarPathFinder

      public AstarPathFinder(cn.nukkit.level.Position start, cn.nukkit.level.Position target, int timeLimit)
    • AstarPathFinder

      public AstarPathFinder(cn.nukkit.level.Position start, cn.nukkit.level.Position target, long timeLimit, double power)
    • AstarPathFinder

      public AstarPathFinder(cn.nukkit.level.Position start, cn.nukkit.level.Position target, long timeLimit, double power, boolean asyncWork)
  • Method Details

    • setPower

      public void setPower(double power)
    • findNext

      public cn.nukkit.math.Vector3 findNext()
      Specified by:
      findNext in interface PathFinder
      Returns:
      返回下一个路径节点 | 没有路径返回 null
    • find

      @Deprecated public void find(boolean async)
      Deprecated.
      Specified by:
      find in interface PathFinder
      Parameters:
      async - 是否异步
    • find

      public List<cn.nukkit.math.Vector3> find()
      Specified by:
      find in interface PathFinder
      Returns:
      返回所有路径节点
    • findRoute

      private void findRoute()
    • show

      public void show()
      Description copied from interface: PathFinder
      展示路径 用于测试
      Specified by:
      show in interface PathFinder
    • getResultNode

      public List<AstarNode> getResultNode()
      Specified by:
      getResultNode in interface PathFinder
      Returns:
      获取结果
    • getResult

      public List<cn.nukkit.math.Vector3> getResult()
      Specified by:
      getResult in interface PathFinder
      Returns:
      返回所有路径节点
    • getMinFNode

      private AstarNode getMinFNode(double power)
      Parameters:
      power -
      Returns:
      获取 openList中最小 F值的节点