TC插件/自动寻路

From BergerHealer Wiki
Revision as of 18:28, 30 December 2021 by Saionji Rin (talk | contribs)
Jump to navigation Jump to search
Other languages:
English • ‎中文 • ‎中文(中国大陆)‎

« 返回上一页


简介

我们可以通过TC插件的switcher、blocker和destination控制牌的相互配合,实现一个复杂的铁路系统,让不同列车前往不同的目的地。在本页面中将介绍自动寻路系统的工作原理以及配置方式。

TC插件可以在路网中设定路径点,同时通过列车自身的路径点属性将列车导向不同的方向。配置路径点的信息请参阅此界面。在路网中,道岔以及路径点的位置被称为“节点”。为了避免列车冲突,路阻控制牌能限制自动寻路的方向。


配置方法

设定路径点

首先将destination控制牌放置在轨道下方,在第三行写上这个路径点的名称。第四行可以为经过的列车设置一个新的路径点(这一行可以留空,列车经过此路径点之后destination属性清空)。


设置新的道岔节点

在道岔处放置一个一直激活的switcher控制牌,TC插件会将道岔识别为路网节点。当一列火车驶入道岔时,插件会根据线路情况自动计算出一条路径,并按照此路径切换轨道,把列车引导到对应的轨道上。需要注意的是,这个节点和现实中的道岔并不完全相同。如果给列车设定的路径点在驶入方向的后方,列车会被“弹回去”。


设置单行线路

因为插件在自动寻路时会设定最短路径,但有时候这个路径会造成进路冲突。举个例子,如果希望列车在复线轨道上只朝一个方向行驶,可以使用blocker控制牌,让插件计算路径时把可能造成反向行车的路径排除在外。


来试试吧

Place down a minecart on the track, and use the Destination command to set a destination:

/train destination [name]
/train destination output

Now give the minecart a push towards the switcher sign, and observe how it will automatically switch the track to send the train towards the destination. You can change the destination again and send it to the switcher again. Continue to experiment with multiple switchers, blockers and destinations.

If you run into a problem where the switcher appears to make a mistake, use the Reroute command to force a recalculation of all routing information:

/train reroute

It is also possible to use the property sign to set a destination:

Signtemplate.png
[+train]
property
destination
outpost


高级功能

上面介绍的是基础功能,接下来还有更多高级功能值得我们讨论。


故障处理

Displays the destinations with a distance to them

TC插件提供了可以在游戏界面显示路径信息的"调试棒"。手持调试棒右键轨道,轨道上方就会为每条路径生成不同颜色的粒子效果。


所有路径点

Use the following command to get a stick item that displays all destinations reached from a given track:

/train debug destination

The track clicked is followed until a node of the track network is found, after which all routeable destinations are listed. For every destination the total distance to it is listed, and particles are displayed leading into it. If you find that a certain destination is not listed that should be, you can move further along the track clicking occasionally to find where the break is.


单一路径点

File:Pathfinding Debug Destination Specific.png
Displays the precise route to one destination

Use the following command to debug a specific destination:

/train debug destination [destination]

Now when you click on the track, particles are displayed what route is taken to reach the destination. This is useful when debugging a specific destination so no particles are displayed for routes and destinations that aren't relevant to you.


路径管理

Normally only one destination is set at a time. It is possible to set the next destination to go to on the destination sign itself, but that means you can only have one possible route. With the route manager a list of destinations to visit can be configured, and then applied to trains. Trains will then go down this list, advancing it every time they pass by a destination on it.


指令

First, edit a train, then use the following commands to set a list of destinations:

/train route set [destination1] ([destination2] [destination3...])
/train route set outpost hillfort dungeon

File:Pathfinding_routes_set.png

To add additional destinations to the existing route, or to remove them, use these commands:

/train route add [destination1] ([destination2] [destination3...])
/train route remove [destination1] ([destination2] [destination3...])

You can then use the destination command or property to start the route at a desired destination. Otherwise, the route is started from the beginning the moment the train hits a destination sign. To inspect the route of a train, use the base route command. The current destination the train has is highlighted green.

/train route

File:Pathfinding_route_info.png


Persistence

The route of a train can be saved globally under a name so it can later be applied to other trains instantly.

/train route save [name]

To load a saved route, this command can be used:

/train route load [name]

Alternatively, it can be done using a property sign as well:

Signtemplate.png
[+train]
property
loadroute
myroute