比较器容器信号强度:公式与堆叠陷阱
一个装有一个物品的箱子会输出信号强度1,但装有63个物品的箱子也是如此。本文将解释其原因,以及为什么潜影盒和铁桶会打破你所有的计算。
使用比较器读取容器是大多数物品分拣和自动合成红石电路的核心。其公式简洁明了,所有特性都源于此。
公式
signal = floor(1 + (sum of fullness across slots ÷ number of slots) × 14)
其中每个槽位的填充度为 items in slot ÷ max stack size for that item。
1 + 是关键部分:任何非零内容都会产生至少1的信号强度,而空容器则为0。这就是为什么检测“这里面是否有任何东西”很简单,而检测“具体有多少”却不简单。
为什么一个物品和六十三个物品都输出1
一个双层箱子有54个槽位。一堆64个圆石会完全填满一个槽位:
1 + (1 ÷ 54) × 14 = 1 + 0.259 = 1.259 → floor = 1
你需要四整堆才能使输出达到2。经典的单物品检测器之所以有效,是因为1是任何内容的下限,而不是因为它测量了一个物品。
堆叠大小改变一切
max stack size 是按物品计算的,这就是计算出错的地方:
| 物品 | 堆叠 | 一个物品输出 |
|---|---|---|
| 圆石 | 64 | 1/64个槽位 |
| 末影珍珠 | 16 | 1/16个槽位 |
| 铁桶、矿车、船 | 1 | 一个完整的槽位 |
一个装有一个铁桶的单槽漏斗会显示为已满——信号强度15。这是精确计数器的标准技巧:用不可堆叠的物品填充漏斗的5个槽位中的4个,并使用第五个作为信号。
潜影盒不透明
比较器读取包含潜影盒的箱子时,会将潜影盒视为一个物品占据一个槽位。它看不到潜影盒内部。假设可以查看内部的分拣系统会默默地出现计数错误。
非容器比较器读取
相同的比较器还可以读取:
| 方块 | 信号 |
|---|---|
| 炼药锅 | 0-3,取决于水位 |
| 堆肥桶 | 0-8,取决于填充阶段 |
| 蛋糕 | 14降至0,取决于吃掉的切片数 |
| 物品展示框 | 1-8,取决于旋转角度 |
| 唱片机 | 1-15,取决于唱片种类 |
| 讲台 | 页码 |
| 蜂箱 | 0-5,取决于蜂蜜等级 |
| 末地传送门框架 | 15(有末影之眼),0(无末影之眼) |
物品展示框和讲台对于隐藏开关很有用,因为它们可以穿墙读取。
减法模式
前面火把亮起表示减法模式:输出是侧面信号减去背面信号,下限为0。比较模式(火把未亮)仅在背面信号强度至少与最强侧面信号强度相等时才通过背面信号。
在参考与计算器 — 第二批中输入容器内容,即可获得精确信号,包括混合堆叠大小。