跳到正文
烈焰甘蔗Wiki

Routing System

[!WARNING] 已订正(1.7.10 树) 本条目不属于「多方块」。1.7.10 的路由系统完全由单方块组件构成: 路由探测器、路由道岔、路由轨道套件各自是独立方块,没有 MultiBlockPattern。 原条目列出的条件集合(ANY / EMPTY / CART / FUEL …)与 RoutingLogic.java 中实际存在的内部类集合不一致,已按源码重写。 证据:RoutingLogic.java:164-440、TrackRouting.java、DetectorRouting.java、TileSwitchRouting.java。

基本信息

属性 值
维度归属 单方块系统(非多方块)
逻辑核心 mods.railcraft.common.blocks.signals.RoutingLogic
规则载体 Routing Table(书写之书)
锁 Routing Ticket
正则符号 REGEX_SYMBOL = "\\?"(条件值支持 ? 通配正则)

组件

组件 类 说明
路由探测器 DetectorRouting 读取矿车上的路由表并匹配规则
路由道岔 TileSwitchRouting 按路由结果切换道岔方向
路由轨道套件 TrackRouting 贴在已装备的轨道上,存储路由表

条件类型(RoutingLogic 内部类)

内部类 说明
NOT 取反
AND 逻辑与
OR 逻辑或
DestCondition 目的地匹配
OwnerCondition 车主(所有者)匹配
NameCondition 矿车名匹配
TypeCondition 矿车类型匹配
RefuelCondition 需要补燃料(锅炉车)
RiddenCondition 矿车正载客
RidingCondition 矿车载有其他矿车
RedstoneCondition 红石信号状态
ColorCondition 轨道涂装颜色匹配
LocoCondition 本车(机车)条件

Condition 为抽象基类,ParsedCondition 为带参数的条件基类(RoutingLogic.java:164-170)。 规则表由 buildLogic(LinkedList<String>) 解析,解析失败抛 RoutingLogicException。

规则格式

规则写在 Routing Table 的书本 NBT 里,逐行为 条件 -> 动作:

DestCondition(StationA) -> GO_NORTH
OwnerCondition(Alice) -> GO_EAST
RefuelCondition() -> HOLD

具体语法由 RoutingLogic.buildLogic() 解析,原条目给出的 DEST=StationA -> GO_NORTH / DEFAULT -> GO_SOUTH 写法未经源码核实,不要照抄。

使用

  1. 放置路由探测器,或给轨道装备路由套件。
  2. 放入 Routing Table 并写入规则。
  3. 用 Routing Ticket 上锁,防止他人改写。
  4. 矿车抵达时系统按规则切换道岔。

配置

RailcraftConfig 的 ops.only 项可限制只有 OP 能编辑路由表。

相关条目

浏览全部模组