Package cn.nukkit.entity.ai.route.finder
Class ConcurrentRouteFinder
java.lang.Object
cn.nukkit.entity.ai.route.finder.SimpleRouteFinder
cn.nukkit.entity.ai.route.finder.ConcurrentRouteFinder
- All Implemented Interfaces:
IRouteFinder
@PowerNukkitXOnly
@Since("1.6.0.0-PNX")
public abstract class ConcurrentRouteFinder
extends SimpleRouteFinder
并行路径查找抽象类
实现了此类的寻路器应当提供完整的异步寻路支持
PNX中未使用此寻路方案,但保留以提供API
实现了此类的寻路器应当提供完整的异步寻路支持
PNX中未使用此寻路方案,但保留以提供API
-
Field Summary
Fields inherited from class cn.nukkit.entity.ai.route.finder.SimpleRouteFinder
currentIndex, evalPos, nodes
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected void
protected void
int
getRoute()
线程安全地获取查找到的路径信息(cloned)boolean
boolean
hasNext()
next()
获取下一个节点Node
(如果有的话)protected void
void
setNodeIndex
(int index) 设置当前索引Methods inherited from class cn.nukkit.entity.ai.route.finder.SimpleRouteFinder
addNode, getEvalPos, getNode
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface cn.nukkit.entity.ai.route.finder.IRouteFinder
getReachableTarget, getStart, getTarget, isFinished, isInterrupt, isReachable, isSearching, search, setStart, setTarget
-
Field Details
-
lock
-
-
Constructor Details
-
ConcurrentRouteFinder
-
-
Method Details
-
addNode
- Overrides:
addNode
in classSimpleRouteFinder
-
addNode
-
resetNodes
protected void resetNodes()- Overrides:
resetNodes
in classSimpleRouteFinder
-
getRoute
线程安全地获取查找到的路径信息(cloned)- Specified by:
getRoute
in interfaceIRouteFinder
- Overrides:
getRoute
in classSimpleRouteFinder
- Returns:
- 一个包含
Node
的列表List
,应已排序好,第一项为寻路起点,最后一项为寻路终点,之间的为找到的路径点
-
getCurrentNode
- Specified by:
getCurrentNode
in interfaceIRouteFinder
- Overrides:
getCurrentNode
in classSimpleRouteFinder
- Returns:
- 当前索引位置对应的节点
Node
-
hasNext
public boolean hasNext()- Specified by:
hasNext
in interfaceIRouteFinder
- Overrides:
hasNext
in classSimpleRouteFinder
- Returns:
- 是否有下一个节点
Node
-
next
Description copied from interface:IRouteFinder
获取下一个节点Node
(如果有的话)- Specified by:
next
in interfaceIRouteFinder
- Overrides:
next
in classSimpleRouteFinder
- Returns:
- 下一个节点
-
hasCurrentNode
public boolean hasCurrentNode()- Specified by:
hasCurrentNode
in interfaceIRouteFinder
- Overrides:
hasCurrentNode
in classSimpleRouteFinder
- Returns:
- 当前索引所在位置是否有节点
Node
-
getNodeIndex
public int getNodeIndex()- Specified by:
getNodeIndex
in interfaceIRouteFinder
- Overrides:
getNodeIndex
in classSimpleRouteFinder
- Returns:
- 当前索引
-
setNodeIndex
public void setNodeIndex(int index) Description copied from interface:IRouteFinder
设置当前索引- Specified by:
setNodeIndex
in interfaceIRouteFinder
- Overrides:
setNodeIndex
in classSimpleRouteFinder
- Parameters:
index
- 索引值
-
asyncSearch
-