【Minecraft】【元件库】0t脉冲发生器(2)

前一期专栏:https://www.bilibili.com/read/cv544167

前言:
第1期专栏主要收集了Minecraft中常见且常用的0t脉冲发生器。而这一期的0t脉冲发生器主要以理论研究为主,而实用性较低。
与前期相同,本文中的0t脉冲发生器仅适用于PC Minecraft,即java版的Minecraft。本文讨论也仅限于PC Minecraft。这一期暂仅讨论正脉冲(红石线熄灭→亮起→熄灭)。本文使用的Minecraft版本:1.12.2。
先熟悉红石更新延迟理论有助于理解本文内容。
编写:HD-nuke8800
正文:
在Minecraft的1gt(gametick)中,分别进行了以下的更新顺序:
Next Tick Entry(简写NTE)
Random Tick(简写RT)
Block Event(简写BE)
Entity Update(简写EU)
Tile Entity(简写TE)
而红石信号可在任一更新顺序发生变化,按照排列组合,将有25种不同的0t信号,本文中将列出25种0t正脉冲发生器。

关于检测手段:
Minecraft中红石线,动力铁轨,活板门,栅栏门等元件,对红石信号亮起和熄灭的响应是实时的。
Minecraft中的NTE类元件,如命令方块,中继器,发射器等元件,对红石信号的亮起是敏感的,它们能响应上升沿。但不是实时。
Minecraft中的BE类元件,如活塞,对在BE阶段更新的红石信号实时响应。
本文中将使用以下检测元件:

1、命令方块,里面指令为:/say oh
2、中继器
3、铁活板门&木栅栏门。当检测到0t脉冲时,会发出极其短暂的“跨拉”的声音
4、活塞
5、必要时会增加另一个命令方块,设置为循环,里面指令为:/time query gametime
和前一期一样,红色羊毛代表输入端,绿色羊毛(或粘土)代表输出端。

以下为0t发生器:
(1)NTE--NTE

触发方式:上升沿
中继器对着的命令方块指令为:/setblock 47 101 -30 redstone_block
比较器对着的命令方块指令为:/setblock 47 101 -30 air
PS:命令方块产生的更新在NTE。

检测元件响应行为:
命令方块:(见上图)
中继器:1t闪烁
活板门、栅栏门:发出“跨拉”声,无开闭动作显示
活塞:无动作
红石线:无闪烁
红石信号波形图如下:

(2)NTE--RT

触发方式:上升沿
发射器里的物品:打火石
该发生器能否发出0t脉冲含有运气成分,且使用次数为一次性
使用前,先输入指令以增大输出0t脉冲的成功率:/gamerule randomTickSpeed 6000。(Minecraft默认设置数值为 3)
PS:火烧掉可燃方块产生的更新在RT。

检测元件响应行为:
命令方块:(见上图)
中继器:1t闪烁
活板门、栅栏门:发出“跨拉”声,无开闭动作显示
活塞:无动作
红石线:无闪烁
红石信号波形图如下:

(3)NTE--BE

触发方式:上升沿
PS:活塞推拉方块产生的更新在BE。

检测元件响应行为:
命令方块:(见上图)
中继器:1t闪烁
活板门、栅栏门:发出“跨拉”声,有开闭动作显示
活塞:0gt瞬推
红石线:闪烁
红石信号波形图如下:

(4)NTE--EU

触发方式:上升沿
PS:TNT爆炸炸掉方块产生更新在EU。

检测元件响应行为:
命令方块:(见上图)
中继器:1t闪烁
活板门、栅栏门:发出“跨拉”声,有开闭动作显示
活塞:1gt瞬推
红石线:闪烁
红石信号波形图如下:

(5)NTE--TE

触发方式:上升沿
PS:活塞正常推拉方块造成的压线更新在TE。

检测元件响应行为:
命令方块:(见上图)
中继器:1t闪烁
活板门、栅栏门:发出“跨拉”声,有开闭动作显示
活塞:1gt瞬推
红石线:闪烁
红石信号波形图如下:

(6)RT--NTE

触发方式:上升沿
发射器里的物品:打火石
命令方块(上图中靠右)中指令:/setblock 46 101 -11 air
该发生器使用次数为一次性
使用前,先输入指令以增大输出0t脉冲的成功率:/gamerule randomTickSpeed 6000。(Minecraft默认设置数值为 3)

检测元件响应行为:
命令方块:(见上图)
中继器:1t闪烁
活板门、栅栏门:发出“跨拉”声,有开闭动作显示
活塞:1gt瞬推
红石线:闪烁
红石信号波形图如下:

(7)RT--RT

触发方式:上升沿
发射器里的物品:打火石
该发生器能否发出0t脉冲含有运气成分,且使用次数为一次性
使用前,先输入指令以增大输出0t脉冲的成功率:/gamerule randomTickSpeed 6000。(Minecraft默认设置数值为 3)

检测元件响应行为:
命令方块:(见上图)
中继器:1t闪烁
活板门、栅栏门:发出“跨拉”声,无开闭动作显示
活塞:无响应
红石线:无闪烁
红石信号波形图如下:

(8)RT--BE

触发方式:上升沿
发射器里的物品:打火石
该发生器使用次数为一次性
使用前,先输入指令以增大输出0t脉冲的成功率:/gamerule randomTickSpeed 6000。(Minecraft默认设置数值为 3)

检测元件响应行为:
命令方块:(见上图)
中继器:1t闪烁
活板门、栅栏门:发出“跨拉”声,有开闭动作显示
活塞:0gt瞬推
红石线:闪烁
红石信号波形图如下:

(9)RT--EU

触发方式:上升沿
发射器里的物品:打火石
该发生器使用次数为一次性
使用前,先输入指令以增大输出0t脉冲的成功率:/gamerule randomTickSpeed 6000。(Minecraft默认设置数值为 3)

检测元件响应行为:
命令方块:(见上图)
中继器:1t闪烁
活板门、栅栏门:发出“跨拉”声,有开闭动作显示
活塞:1gt瞬推
红石线:闪烁
红石信号波形图如下:

(10)RT--TE

触发方式:上升沿
发射器里的物品:打火石
该发生器使用次数为一次性
使用前,先输入指令以增大输出0t脉冲的成功率:/gamerule randomTickSpeed 6000。(Minecraft默认设置数值为 3)

检测元件响应行为:
命令方块:(见上图)
中继器:1t闪烁
活板门、栅栏门:发出“跨拉”声,有开闭动作显示
活塞:1gt瞬推
红石线:闪烁
红石信号波形图如下:

(11)BE--NTE

触发方式:上升沿
命令方块中指令(黄色羊毛旁):/setblock 46 101 10 air
该发生器使用次数为一次性

检测元件响应行为:
命令方块:(见上图)
中继器:1t闪烁
活板门、栅栏门:发出“跨拉”声,无开闭动作显示
活塞:1gt瞬推
红石线:无闪烁
红石信号波形图如下:

(12)BE--RT

触发方式:上升沿
发射器里的物品:打火石
该发生器使用次数为一次性
使用前,先输入指令以增大输出0t脉冲的成功率:/gamerule randomTickSpeed 6000。(Minecraft默认设置数值为 3)

检测元件响应行为:
命令方块:(见上图)
中继器:1t闪烁
活板门、栅栏门:发出“跨拉”声,无开闭动作显示
活塞:1gt瞬推
红石线:无闪烁
红石信号波形图如下:

(13)BE--BE

触发方式:上升沿

检测元件响应行为:
命令方块:(见上图)
中继器:1t闪烁
活板门、栅栏门:发出“跨拉”声,无开闭动作显示
活塞:0gt瞬推
红石线:无闪烁
红石信号波形图如下:

(14)BE--EU

触发方式:上升沿

检测元件响应行为:
命令方块:(见上图)
中继器:1t闪烁
活板门、栅栏门:发出“跨拉”声,无开闭动作显示
活塞:1gt瞬推
红石线:无闪烁
红石信号波形图如下:

(15)BE--TE

触发方式:上升沿

检测元件响应行为:
命令方块:(见上图)
中继器:1t闪烁
活板门、栅栏门:发出“跨拉”声,无开闭动作显示
活塞:1gt瞬推
红石线:无闪烁
红石信号波形图如下:

(16)EU--NTE

触发方式:上升沿
命令方块中指令(黄色羊毛旁):/setblock 47 101 30 air
该发生器使用次数为一次性

检测元件响应行为:
命令方块:(见上图)
中继器:1t闪烁
活板门、栅栏门:发出“跨拉”声,无开闭动作显示
活塞:无响应
红石线:无闪烁
红石信号波形图如下:

(17)EU--RT

触发方式:上升沿
发射器里的物品:打火石
该发生器使用次数为一次性
使用前,先输入指令以增大输出0t脉冲的成功率:/gamerule randomTickSpeed 6000。(Minecraft默认设置数值为 3)

检测元件响应行为:
命令方块:(见上图)
中继器:1t闪烁
活板门、栅栏门:发出“跨拉”声,无开闭动作渲染
活塞:无响应
红石线:无闪烁
红石信号波形图如下:

(18)EU--BE

触发方式:上升沿

检测元件响应行为:
命令方块:(见上图)
中继器:1t闪烁
活板门、栅栏门:发出“跨拉”声,有开闭动作显示
活塞:0gt瞬推
红石线:闪烁
红石信号波形图如下:

(19)EU--EU

触发方式:上升沿

检测元件响应行为:
命令方块:(见上图)
中继器:1t闪烁
活板门、栅栏门:发出“跨拉”声,无开闭动作显示
活塞:无响应
红石线:无闪烁
红石信号波形图如下:

(20)EU--TE

触发方式:上升沿

检测元件响应行为:
命令方块:(见上图)
中继器:1t闪烁
活板门、栅栏门:发出“跨拉”声,无开闭动作显示
活塞:无响应
红石线:无闪烁
红石信号波形图如下:

(21)TE--NTE

触发方式:上升沿
命令方块中指令(黄色羊毛旁):/setblock 45 101 50 air
该发生器使用次数为一次性

检测元件响应行为:
命令方块:(见上图)
中继器:1t闪烁
活板门、栅栏门:发出“跨拉”声,无开闭动作显示
活塞:无响应
红石线:无闪烁
红石信号波形图如下:

(22)TE--RT

触发方式:上升沿
发射器里的物品:打火石
该发生器使用次数为一次性
使用前,先输入指令以增大输出0t脉冲的成功率:/gamerule randomTickSpeed 6000。(Minecraft默认设置数值为 3)

检测元件响应行为:
命令方块:(见上图)
中继器:1t闪烁
活板门、栅栏门:发出“跨拉”声,无开闭动作显示
活塞:无响应
红石线:无闪烁
红石信号波形图如下:

(23)TE--BE

触发方式:上升沿

检测元件响应行为:
命令方块:(见上图)
中继器:1t闪烁
活板门、栅栏门:发出“跨拉”声,有开闭动作显示
活塞:0gt瞬推
红石线:闪烁
红石信号波形图如下:

(24)TE--EU

触发方式:上升沿

检测元件响应行为:
命令方块:(见上图)
中继器:1t闪烁
活板门、栅栏门:发出“跨拉”声,有开闭动作显示
活塞:1gt瞬推
红石线:闪烁
红石信号波形图如下:

(25)TE--TE

触发方式:上升沿

检测元件响应行为:
命令方块:(见上图)
中继器:1t闪烁
活板门、栅栏门:发出“跨拉”声,无开闭动作显示
活塞:无响应
红石线:无闪烁
红石信号波形图如下:


统计分析:
关于活塞:
先来分析大家最为关心的活塞,下表中列出了25种发生器,活塞对应的行为。图示中,绿色代表活塞产生了0gt瞬推行为,黄色代表活塞产生1gt瞬推行为,红色代表活塞无响应。

或者,换个排列方式观察一下?

经过观察可以发现以下规律:
1、只有下降沿发生在Block Event,活塞才能产生0gt瞬推!
2、只要0t信号在经过Block Event时保持亮起(高电平),过了Block Event才熄灭(低电平),活塞动作都是1gt瞬推!
3、只要0t信号没有经过Block Event(BE期间是低电平),活塞都无响应!
关于中继器和命令方块:
中继器和命令方块只要收到上升沿肯定会有反应的。问题是某些0t发生器中我放了设置循环,内部指令为“/time query gametime”的命令方块,报了两次gametime。
观察发现,报了两次gametime的0t发生器,0t信号都跨过了gt分界线。(TE和NTE之间)
PS:问题来了,这还能叫0t么?我打算在另一篇专栏中再次讨论这个问题,暂且把这个问题搁下。
关于红石线,活板门、栅栏门:
细心观察可以发现,红石线有时候会闪烁,活板门和栅栏门有时候会有开闭显示,有什么规律呢?图示中,绿色代表红石线,活板门、栅栏门无闪烁、开闭显示。黄色代表红石线,活板门、栅栏门有闪烁、开闭显示。

或者,换个排列方式观察下?

观察可以发现以下规律:
只要0t信号在高电平期间经过了RT和BE的分界线,红石线,活板门、栅栏门就会产生闪烁,开闭显示现象。
关于“0t信号长度”:
在第1期中我提到了“0t信号长度”的定义,注意的是,这个概念只适用于能让活塞产生0gt瞬推的0t信号。留意第1期中的发生器,它们都属于“NTE--BE”,“BE--BE”,“TE--BE”这三类0t发生器,这三类0t发生器的0t信号下降沿都在BE。可以说,“0t信号长度”只能用来衡量“NTE--BE”、“RT--BE”、“BE--BE”、“EU--BE”、“TE--BE”这五种0t发生器发出的0t信号能激活活塞的个数。其它20类0t发生器发出的0t,活塞要么不响应,要么1gt瞬推。所以“0t信号长度”在另外20类0t发生器产生的0t信号中不可用!
PS:让活塞产生1gt瞬推的0t信号,它们能激活bud位活塞个数理论上是∞个。
最后,就是大汇总了:


后记:
第2期的0t脉冲发生器也到此写完了。看完后,相信很多人已经发现了新的问题了。细心的观众会发现,我这次并没有使用第1期中出现的“0t脉冲,本质是在同1gt(gametick)内亮起并熄灭的红石信号。”这句话。很明显,这篇文章中提到的25类0t发生器中,有10类0t发生器和这句话是相悖的。而第1期中有几个属于“TE--BE”类型的0t发生器也是和这句话相矛盾的。目前这个问题尚未解决。这里我只能抛砖引玉了。
(´・_・`)
若发现本文中出现差错,欢迎在评论区给出。也欢迎在评论区发表自己的看法和意见。qwq