TrainCarts/自动寻路机制

From BergerHealer Wiki
Jump to navigation Jump to search
This page is a translated version of the page TrainCarts/PathFinding and the translation is 100% complete.
Other languages:
English • ‎中文 • ‎中文(中国大陆)‎

« 返回


介绍

设置三个目的地和一个转辙器来调度列车。

通过自动切换轨道,列车理论上可以到达 Minecraft 世界中的任何位置。通过放置控制牌来构建轨道网络架构,预先配置的列车将遵循该架构自动寻路到目的地。

列车到达的地点被称为目的地,由目标牌指定。切换轨道的位置以及终点的位置被称为节点,由转辙器指定。如果要强制某段轨道路线只能单向行驶,可以设置阻挡器来阻挡反方向驶来的列车。


开始

指定目的地

可以在目标牌的第三行输入目的地的名称,第四行可以填写新的目的地名称来为经过的列车设置新的目的地,但你也可以留空。


指定切换节点

轨道分叉口应该放置一个始终开启的转辙器。当有一辆设置了目的地的列车经过时,转辙器会计算出一条路线,然后切换轨道。


强制单向行驶

当希望某条轨道上只能单向行驶时,可以使用始终开启的阻挡器,这个方法在有并排的轨道上时很有用,每条轨道只能沿着一个方向行驶,自动寻路机制会忽略阻挡器阻挡的路线,使其不会出现驶错轨道的问题。


测试一下

在轨道上放置一辆矿车,并使用目的地指令设置一个目的地:

/train destination [名称]
/train destination output

现在将矿车推到转辙器,观察它是如何切换轨道并发往目的地的。你可以再次设置目的地,并推向转辙器。可以继续尝试多个转辙器、阻挡器和目标牌。

如果出现转辙器发错方向等问题,可以使用重置调度指令强制重新计算调度路线。

/train reroute

也可以使用属性牌设置目的地:

Signtemplate.png
[+train]
property
destination
outpost


高级设置

一旦理解了基础系统的运作,那就可以进一步讨论更高级更复杂的功能了。

实用功能

保持区块加载

当列车上没有任何玩家且周围没有玩家来加载区块时,可以开启列车的保持区块加载属性来防止列车被游戏卸载。

在属性牌上你可以这样写:

Signtemplate.png
[+train]
property
keepchunksloaded
true

或者你可以创建一辆列车,使用/train keeploaded true并通过/train save <名称>保存列车。使用生成器可批量生成保存的列车。

等待距离

为了避免列车碰撞且保持列车之间的距离,可以使用等待属性

闭塞区间

闭塞区间能避免列车在交叉路口内发生碰撞。

车站调度

车站可以将列车发往下一个目的地。

Signtemplate.png
[!train]
station
route


调试

显示存在一定距离的目的地。

插件提供了一个调试棒,用于显示自动寻路机制的信息。使用调试棒单击轨道,会显示轨道有关路线的信息。潜行(Shift)并单击轨道,会重新调度,从点击的铁轨开始重新计算路线。如果你有多个较小的交通网络,使用调试棒也许能比指令更加高效。


所有目的地

使用以下指令获取调试棒(用于显示铁轨到所有目的地的路线):

/train debug destination

沿着选中的铁轨寻路,直到找到交通网络中的节点,之后列出所有可以调度的目的地。所有的目的地都会列出与轨道间的总距离,并显示沿路线的粒子。如果你发现有某个目的地没有列出,你可以沿着轨道走,偶尔单击一下来检查是哪个位置出现了问题。


单个目的地

显示到一个目的地的精确路线。

使用以下指令调试特定目的地:

/train debug destination [目的地]

现在单击铁轨时会显示到达目的地的粒子路线。这在调试目的地时很有用,这样不会显示与你无关的调度路线和目的地。


调度管理

通常一次只能设置一个目的地。可以在目标牌上输入下一个目的地,但是只能有一条路线。使用调度管理机制,可以配置需要访问的目的地列表,并应用到列车上。列车会依次前往列表中的目的地,到达目的地后会继续前往下一个目的地。


指令

编辑列车,使用以下指令设置目的地列表:

/train route set [目的地1] ([目的地2] [目的地3...])
/train route set outpost hillfort dungeon

File:Pathfinding_routes_set.png

要在现有路线添加或移除一个或多个目的地,可以使用以下指令:

/train route add [目的地1] ([目的地2] [目的地3...])
/train route remove [目的地1] ([目的地2] [目的地3...])

然后你可以在指定的目的地使用目的地指令或属性来启用路线。否则这条路线在列车到达目标牌的那一刻就启用了。要检查列车路线,请使用基础调度指令。列车要到达的目的地会使用绿色进行高亮显示。

/train route

File:Pathfinding_route_info.png


自动化

列车路线可通过名称进行全局保存,并可快捷应用到其他列车上。

/train route save [名称]

要加载已保存的路线,需使用以下指令:

/train route load [名称]

或者也可以使用属性牌来完成:

Signtemplate.png
[+train]
property
loadroute
myroute