方块更新感应器(Block Update Detector),英文缩写为BUD,是一种利用游戏中方块的更新范围不同来检测附近方块更新的红石设备。有很多种方块更新感应器的设计方案,它们都基于同一思想:将红石电路置于一种本应不稳定的状态,但是因为一些本应影响电路稳定的方块并没有对电路的变化产生反应,从而使整个电路保持稳定状态。这些“懒惰”的方块就将充当“传感器”的作用。当相邻方块因某种原因更改了状态时,这个(相邻的发生变化的)方块将发送一个信号来“唤醒”传感器方块,使这个电路就表现出其他动作,然后回归“沉睡”状态。
这个方法最早被Cored发现。[1] 之后被Etho公布并被很多玩家共同发展。
检测项
方块更新检测器可以检测方块ID或附加值的更改
当以下事件(被称为NeighborChanged
更新
- 放置方块
- 破坏方块
- 水或熔岩的方块状态Level值的变化
- 霜冰、冰的形成或融化
- 受重力影响的方块(例如沙子)落到地面
- 被活塞移动的方块,还有活塞本身的动作。
- 末影人拾取和放置方块
- 树苗长成树木
- 蘑菇长成巨型蘑菇
- 植物的生长和传播,包括:蘑菇、甘蔗、花、草丛、仙人掌、南瓜、西瓜(南瓜茎和西瓜茎长出南瓜或西瓜时,梗和南瓜或西瓜都会被方块更新感应器所感应到)。(可可豆、南瓜茎、西瓜茎、下界疣、藤蔓、小麦、胡萝卜、马铃薯、甜菜根等除外)
- 树叶的生长或枯萎
- 草的生长或死亡
- 泥土变成耕地,耕地重新成为泥土(但是这可以用充能的方法更简单地检测到)
- 火的点燃或熄灭
- 红石矿石开始或停止发光
- 红石线或红石火把状态的改变(包括充能等级,但不包括改变指向),红石设备的激活
- 设置红石中继器的延时
- 熔炉开始或停止熔炼
- 铁轨改变方向
- TNT被点燃并成为实体
- 蠹虫钻进方块
- 草方块变为草径
- 蛋糕被食用
- 打开或关上箱子或陷阱箱
- 线的激活和取消激活(即使线没有连接到绊线钩)
方块与方块的状态改变(被称为PostPlacement
更新
- 藤蔓、瓜茎(南瓜茎和西瓜茎长出南瓜或西瓜时,梗和南瓜或西瓜都会被方块更新感应器所感应到)、下界疣、可可豆、紫颂植物的生长
- 干海绵吸收水
- 草方块由于羊“吃”草而改变
- 龙蛋在传送时替换空气方块
- 打开或关闭门、活板门或栅栏门
- 从唱片机中插入或移除音乐唱片
- 将末影之眼置入末地传送门框架
- 树的自然生长(使用骨粉使树生长可以被检测)
- 炼药锅水位的变化
- 打开或关闭末影箱、潜影盒
- 在酿造台上放置和拿走玻璃瓶\药水\烈焰粉
- 铁砧被轻微损坏或严重损坏
- 红石比较器从比较模式向减法模式切换(有侧面能量输入时能检测得到是因为检查到红石比较器的能量变化,而不是红石比较器模式的切换)
- 改变雪层的厚度
- 在床上睡觉
- 容器内容物的改变(包括箱子,陷阱箱,潜影盒,末影箱,发射器,投掷器,酿造台或熔炉。)
方块更新感应器的种类
游戏内置
侦测器是在1.11的16w39a快照中加入的内置方块更新检测器,但是要注意这种方块更新检测器与常规方块更新检测器的检测方式并不相同,因此检测内容也不完全吻合。
活塞BUD位充能
活塞BUD位充能型单稳态BUD
有很多方块更新感应器设计方案都是基于活塞被激活因而未传递给方块更新信号。[2] 活塞如若在受到信号时并没有接收到方块更新信号,那么它就会进入BUD态 在这种设计中,活塞只会在旁边方块更新时伸长,但是当伸长后又会因为活塞臂注意到其旁边的红石中继器被关闭而立即缩回。这是活塞型方块更新感应器重置的方法:通过对伸长的活塞臂旁边的电路的变化。 这个设计方案可以拓展为多传感器,所有的活塞都被设计为传感器。
一个简单的利用粘性活塞的方块更新感应器。
利用1.8之后的粘液块我们可以制作一些BUD,一般把利用了粘液块的BUD叫做粘液块BUD
由于红石块处于活塞的BUD位,所以这个机械构成一个单稳态活塞BUD。
活塞BUD位充能型双稳态BUD
通过移除一个方块更新感应器的复位装置,这个方块更新感应器就可以成为双稳态方块更新感应器。这个设备有着两种可以通过方块更新来切换的稳定状态。因此成为“双稳态BUD”这相当于与T触发器相连的普通方块更新感应器。这种方块更新感应器在检测熔炉、草/泥土和床的状态时十分有用。
满足活塞推出条件但并不给活塞更新信号
如若将本不满足推出条件的活塞满足条件,并且不给予活塞方块更新信号,那么活塞将进入BUD态。 下一个设计方案是基于伸长的活塞并不能被其他活塞推动的事实。当活塞缩回时,它并不会激活其他试图推它的活塞。附加着一个方块的粘性活塞是传感器。这种方块更新感应器的优点在于节约,并且其利用的游戏特性不太可能在未来被改变。
中继器延时为2刻。
红石导线指向BUG
此漏洞未必对所有版本有效。该漏洞被修复后,下文所述的信息将不再适用。
请慎重对待。
利用红石导线改变指向方向并不产生方块更新信号的BUG,我们可以制作方块更新感应器。
充能铁轨型方块更新感应器
与活塞型相似,如果充能铁轨上方的一格空间可被激活,那么充能铁轨也会被激活,但是以这种方法被激活时,并不能被正确地更新。与探测铁轨和矿车相组合,这就可以被用来制作方块更新感应器。 所有的充能铁轨都可以作为感应器。 这种设计最短可以至单个充能铁轨,最长可以延伸至14个充能铁轨。
探测铁轨型方块更新感应器
可以通过探测铁轨和矿车来建造一个方块更新感应器。下面是一个例子。
基于红石火把
在14w25a(修复了MC-56541)以后,一个燃尽的红石火把 可以用于制作BUD。一旦火把烧毁,红石火把会在方块更新下重新点亮。这是最小且最简单的BUD,因为只需要一支红石火把和红石线 (再加上两个中继器即可成为一个固态的信号输出)。
一支在方块侧面的红石火把,然后放置红石线,使红石信号循环,它本身也是一个BUD。红石火把周围 (包括上下两面)是检测区域,而红石线部分则不是其检测区域。这支红石火把会闪烁16刻,它最后会燃尽(熄灭)。然后会冷却(熄灭)56刻。
它不能检测被使用的床。
参见
参考
|