对于破基岩原理的理解(如有错误请指正)
注意:本文基于JE1.20.1讨论,其他版本机制或许不一样
首先是有关微时序的一些内容。以下按顺序列出1gt内几个主要的事件:NTE——计划刻事件,主要处理中继器、侦测器等有延时的元件;BE——方块事件,活塞开始推出或收回;TE——方块实体事件,b36(移动的活塞)到位;NU——玩家事件,玩家发出各种动作。
为什么各种破基岩都离不开活塞?我的理解是:归根结底都依靠无头活塞收回时将前面的方块替换为空气的特性。即当一个正常活塞收回,活塞头所在方块要被替换为空气,无头活塞前方不是活塞头,而是其他的方块,而它继承了前述活塞的特性,因此无头活塞前方的方块会消失。
这时候有人问了:铁头功不是无头活塞啊?我认为本质上相同,只不过其中产生的无头活塞瞬间收回,不给你看到它的机会。
那么,如何产生无头活塞?
事实上,最简单的办法是:使用carpet的/tick freeze功能,冻结游戏,然后挖掉一个伸出的活塞的信号源,再挖掉活塞,然后在原位放一个其它朝向的活塞(朝向非空气方块),接着再给它一个信号源,最后解除冻结,就能得到无头活塞。我们分析一下:tick freeze冻结后,游戏处于NU阶段,等待处理玩家操作,信号源消失后,活塞计划在下一gtBE阶段开始收回,但是你又把活塞敲掉了,替换成了另一个朝向的活塞,又给了信号源。解除冻结后,在下一gt的BE阶段,首先是上一gt的计划仍然执行,被玩家偷偷换了的活塞本来要收回,但是发现有信号源,于是不收回,而是直接将自己变成伸出状态,(直接将extended改为true)而不去判定自己现在能不能伸出——在能伸出的情况下伸出,在不能伸出的情况下,活塞头直接不要了,活塞因此成为无头活塞。
如果放上新活塞后没有添置新的信号源,那么解冻后活塞前的基岩将被直接替换而不会让我们看到无头活塞。
然而,一般生存中我们不能用tick freeze,怎么做到这一点呢?
现存的方法给了我们一些答案:昨天红科搬搬的那个,就是利用精密(的红石电路使活塞每个gt都经历一遍试图收回但未收回的过程(也就是用机器帮我们完成了信号源的控制),玩家只需要随时破坏+放置活塞即可;铁头功,则是用tnt帮我们破坏,同时完成信号源的改变(TNT爆炸在EU阶段,处于BE与TE之间)玩家只需要抓住信号源变更的那一个gt放下活塞便可以直接破掉基岩
对于tnt或者tnt矿车直接炸掉黏性活塞的活塞头,则是要转移无头活塞。这个方法还没有深入研究,就不多说了,有了解的欢迎在评论区补充
看到这里了,你应该对无头活塞或破基岩有了大概的了解了吧?如果你认为我的解释有误,欢迎在评论区指正哦~