TrainCarts/控制牌/语句
介绍
转辙器、检测器、跳过牌都可使用语句条件判断来分别切换轨道、切换拉杆或执行其他类型的操作。语句通常用在控制牌的第三行和第四行。你还可以在控制牌下方继续添加其他控制牌,来扩展更多语句。
使用示例
对于管理世界的列车路线,你一定得试试路线查找。如果你需要根据某些属性对矿车进行分类,并有条件地激活某些控制牌或以某种方式发车,那么你需要使用语句。以下是一些示例。
移除空矿车
如果矿车上没有乘客,则启用摧毁器。
列车存有物品时启动列车
列车存有物品时启用车站。
向特定玩家发车
如果列车的车主是某个指定的玩家,则切换轨道通向该玩家。
语法
你可以在语句前面输入“!”来表示否定。如果控制牌第一行设置为 [cart],则会将列车看作为一辆辆矿车。数组语句格式为 name@<数组>,可以对多个属性进行操作。例如,i@wood 操作列车中的物品,并检测其中是否是木头。对于多个物品,需使用(;)分隔,例如 ed@north;south 仅匹配向北或向南行驶的列车。
大多数语句支持运算符。运算符包括:
- = 等于
- != 不等于
- >= 大于等于
- <= 小于等于
- > 大于
- < 小于
运算符需要输入在语句的后面。比如,minecarts>=5 将检测列车中是否有超过 5 辆矿车。trainsize>=5 还计算运输矿车和动力矿车。你还可以将其组成数组。使用 i@stone=64 可以检测列车中是否正好有 1 组石头。所有可以解析为数量的语句都支持运算符,包括计算列车中的生物数量:m@cow>5。如果没有指定运算符,则使用默认运算符 >0,或者在物品的情况下,使用物品名称前面指定的数量。
语句 | 释义 |
---|---|
passenger | 列车上有乘客。 |
items | 列车上有箱子,且装有物品。 |
empty | 列车上没有乘客和物品。 |
fuel | 列车上有个装有燃料的熔炉。 |
trainsize | 列车车厢数量(例如:trainsize>=3)。 |
chest_minecart | 列车中运输矿车的数量(例如:chest_minecart>=1),这也适用于漏斗矿车、动力矿车等类型。 |
velocity speed |
评估列车的速度(移动速度),或判断列车是否正在移动。 |
powered | 列车包含动力矿车。 |
storage | 列车包含储存类型的矿车。 |
minecart | 列车包含普通矿车。 |
redstone | 控制牌被红石激活时触发。 |
maxspeed | 评估列车的最大速度。 |
mobenter | 评估生物进入属性。 |
playerenter | 评估玩家进入属性。 |
playerexit | 评估玩家离开属性。 |
destination | 评估列车是否设置了目的地。 |
random | 有 50% 几率启用。 |
n@<名称> name@<名称> |
列车名称等于以下指定名称之一。 |
i@<物品> | 列车载有以下物品之一。 |
o@<车主> | 列车包含以下车主之一。 |
d@<目的地> | 列车设置了以下目的地之一。 |
p@<玩家> | 列车被以下玩家之一占用。 |
m@<生物名称> | 列车被以下生物之一占用。 |
pi@<物品> | 其中一名玩家的背包中有以下物品之一。 |
ph@<物品> | 其中一名玩家的手上有以下物品之一。 |
ed@<方向> | 矿车正在向指定的方向之一移动(转辙器:进入时)。 |
rs@<方向> | 控制牌由以下指定的方向之一激活。 |
[email protected] | 有 30% 的几率启用(而不是默认的 50%;1.0 相当于 100%)。 |
anything t@<标签> |
对于任何其他事情,插件都会检测列车是否将其设置为标签。 |
和逻辑
由于一切都以“或”的形式进行评估,那该如何检测列车上是否有两个相同的语句呢?最简单的方法是反转两个语句,切换拉杆来激活反转的控制牌。例如:
[cart] switcher !o@me !a |
[!cart] chest in |
如果 'me' 不是车主或没有 'a' 标签,则不转移物品。 | |
如果 'me' 是车主,且有 'a' 标签,则转移物品。 |
如果这较难做到(你需要评估超过 3 个语句),你必须使用红石和多个转辙器。
标签
对于除上述的语法表外的其他所有语句,名称都会与列车上的标签进行比较。要查找标签,你可以使用通配符一次检测多个标签:
* - 有标签。 !* - 没有标签。 *a - 有以 'a' 为结尾的标签。 a* - 有以 'a' 为开头的标签。 *a* - 包含 'a' 的标签。 *ab*cd* - 包含 'ab' 和 'cd' 的标签。
例如,以下控制牌通过标签来切换轨道。如果列车包含以 station 为开头的标签,则向左行驶;如果列车包含以 main 为开头的标签,则向右行驶;如果列车同时包含这两个标签,则直行。