Interface IRouteFinder

All Known Implementing Classes:
ConcurrentRouteFinder, SimpleFlatAStarRouteFinder, SimpleRouteFinder, SimpleSpaceAStarRouteFinder

@PowerNukkitXOnly @Since("1.6.0.0-PNX") public interface IRouteFinder
此接口抽象了一个寻路器
  • Method Details

    • isSearching

      boolean isSearching()
      Returns:
      boolean 是否正在寻路
    • isFinished

      boolean isFinished()
      Returns:
      boolean 是否完成寻路(找到有效路径)
    • isInterrupt

      boolean isInterrupt()
      Returns:
      boolean 寻路是否被中断了
    • isReachable

      boolean isReachable()
      在调用此方法前,你应该首先尝试寻路,否则此方法始将终返回true
      Returns:
      终点是否可到达
    • search

      boolean search()
      尝试开始寻路
      Returns:
      是否成功找到路径
    • getStart

      Vector3 getStart()
      Returns:
      寻路起点
    • setStart

      void setStart(Vector3 vector3)
      设置寻路起点,将会导致寻路中断
      Parameters:
      vector3 - 寻路起点
    • getTarget

      Vector3 getTarget()
      Returns:
      寻路终点
    • setTarget

      void setTarget(Vector3 vector3)
      设置寻路终点,将会导致寻路中断
      Parameters:
      vector3 - 寻路终点
    • getReachableTarget

      Vector3 getReachableTarget()
      Returns:
      可到达的终点
    • getRoute

      List<Node> getRoute()
      获取寻路结果
      Returns:
      一个包含 Node 的列表 List,应已排序好,第一项为寻路起点,最后一项为寻路终点,之间的为找到的路径点
    • hasNext

      boolean hasNext()
      Returns:
      是否有下一个节点 Node
    • next

      @Nullable Node next()
      获取下一个节点Node(如果有的话)
      Returns:
      下一个节点
    • hasCurrentNode

      boolean hasCurrentNode()
      Returns:
      当前索引所在位置是否有节点 Node
    • getCurrentNode

      Node getCurrentNode()
      Returns:
      当前索引位置对应的节点 Node
    • getNodeIndex

      int getNodeIndex()
      Returns:
      当前索引
    • setNodeIndex

      void setNodeIndex(int index)
      设置当前索引
      Parameters:
      index - 索引值
    • getNode

      Node getNode(int index)
      Returns:
      指定索引位置的节点 Node