TrainCarts/PathFinding [zh-cn]

From BergerHealer Wiki
Jump to navigation Jump to search
(Updating to match new version of source page)
(Updating to match new version of source page)
 
(4 intermediate revisions by one other user not shown)
Line 1: Line 1:
<languages/>
<languages/>
[[Special:MyLanguage/TrainCarts|« 返回]]
== 介绍 ==
== 介绍 ==


Line 61: Line 58:
<div class="mw-translate-fuzzy">
<div class="mw-translate-fuzzy">
==== 保持区块加载 ====
==== 保持区块加载 ====
当列车上没有任何玩家且周围没有玩家来加载区块时,可以开启列车的[[TrainCarts/Signs/Property|保持区块加载属性]]来防止列车被游戏卸载。
当列车上没有任何玩家且周围没有玩家来加载区块时,可以开启列车的[[Special:MyLanguage/TrainCarts/Signs/Property|保持区块加载属性]]来防止列车被游戏卸载。
</div>
</div>


Line 67: Line 64:
{{sign|[+train]|property|keepchunksloaded|true}}
{{sign|[+train]|property|keepchunksloaded|true}}


<div class="mw-translate-fuzzy">
或者你可以创建一辆列车,使用<code>/train keeploaded true</code>并通过<code>/train save <名称></code>保存列车。使用[[Special:MyLanguage/ TrainCarts/Signs/Spawner#Automated_spawning|生成器]]可批量生成保存的列车。
或者你可以创建一辆列车,使用<code>/train keeploaded true</code>并通过<code>/train save <名称></code>保存列车。使用[[TrainCarts/Signs/Spawner#Automated_spawning|生成器]]可批量生成保存的列车。
</div>


<div class="mw-translate-fuzzy">
==== 等待距离 ====
==== 等待距离 ====
为了避免列车碰撞且保持列车之间的距离,可以使用[[TrainCarts/Signs/Property#Wait_Property|等待属性]]。
为了避免列车碰撞且保持列车之间的距离,可以使用[[Special:MyLanguage/ TrainCarts/Signs/Property#Wait_Property|等待属性]]。
</div>


<div class="mw-translate-fuzzy">
==== 闭塞区间 ====
==== 闭塞区间 ====
[[TrainCarts/Signs/Mutex|闭塞区间]]能避免列车在交叉路口内发生碰撞。
[[Special:MyLanguage/ TrainCarts/Signs/Mutex|闭塞区间]]能避免列车在交叉路口内发生碰撞。
</div>


<div class="mw-translate-fuzzy">
==== 车站调度 ====
==== 车站调度 ====
[[TrainCarts/Signs/Station|车站]]可以将列车发往下一个目的地。
[[Special:MyLanguage/ TrainCarts/Signs/Station|车站]]可以将列车发往下一个目的地。
</div>


{{sign|[!train]|station||route}}
{{sign|[!train]|station||route}}

Latest revision as of 09:45, 12 October 2025

Other languages:

介绍

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

通过自动切换轨道,列车理论上可以到达 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