本篇教程由作者设定未经允许禁止转载。

红石系统现状

红石系统,作为原版mc“最为智能”,而且和mod兼容性最好的控制系统,其在自动化领域的作用不可忽视


然而,我最近入坑GTNH,在查找核电摆法的时候,我偶然发现一个问题

那就是使用红石系统作为控制核心的自动化设计寥寥无几


有人会说:"啊红石系统占地那么大,哪有SFM、OC一个小机箱就解决的好!"

这时就是PR这个mod的用武之地:不只是大量的简化门,甚至还有IC门这种"真正的集成电路"来大幅缩减红石控制的空间成本


然而,使用红石控制的人依然稀少本人几乎闻所未闻有人用IC门,全是OCSFM神教


百科上GTNH相关的教程较少,此处采用GTNH中文wiki的教程作为补充样本

其中涉及到中高端自动化的教程,我已经接触到的无一例外都使用了SFM或是OC

唯一一个涉及到PR的还是借用红石合金丝不会被高温反应堆融毁的特性

其他mod使用PR做红石控制的也是寥寥无几,更何况大多数整合包根本瞧不上PR,压根不添加进mod列表

总结就是,自动化玩家们(甚至是整合包作者们)往往并不把PR放在眼里,甚至备选方案也不予考虑,他们更加青睐SFM和OC


那么,原因何在呢?

经过简单的研究,我发现了可能的原因所在


首先是两种控制系统本身的特性原因

SFM和OC都具有一个共性,他们都采取了类似“编程”的形式进行自动化的控制

不过这不是重点,重点是该形式带来的特殊便利

“程序化”,或者我更习惯称之为“流程化”


这些控制方式把整个生产控制流程变为一系列的控制操作,使得控制变得既稳定又简单易懂

最简单的例子是IC2的强冷核电控制,换燃料棒和换冷却单元的时机总是难以调谐,而流程化控制则完美应对


反观红石系统

其本身作为一种逻辑处理,单纯简单的一根红石线无法实现哪怕稍微复杂一点点的信息处理,而且红石处理本身带有极强的即时性,即几乎一切控制行为都是根据输入的变化而变化,想让其能在收到同一输入时像OC、SFM那样产生不同的反应并不是一件容易的事情

虽然有模拟信号系统的存在,但是在一个机箱就能完成全部控制的OC面前依然显得逊色,况且OC代码可以复制,而红石逻辑系统可不是人人都会搭建的


其次是不同控制系统的普及度问题

红石系统相比于简单易懂的SFM图形界面往往被认为"不好理解"、是"聪明人的玩具"

这也往往造成玩家们对于红石做控制核心的排斥,而且愈是高级的系统愈是排斥

因此在大家自己组建的mod包中,想看见PR就已经相当不容易,更别提使用PR制作红石核心的控制系统了

久而久之,使用红石系统控制这一选择渐渐退出了主流的自动化控制,转而成为一些自动化挑战(比如Bot的一堆挑战)的硬性要求用以增加难度


由此我们可以对红石系统不受待见的原因略有了解,也因此得出了一个看似正确的结论:红石不适用于高级控制


流程控制的新希望

然而,红石系统的劣势果真不可破除吗?

RS锁存器给红石系统的高级控制带来了希望

其本身存储信息的能力将会成为控制的核心


也许有人会说:“RS锁存器只有两种状态,不是只能进行两步的控制么?”

是,但是我可以使用多个RS锁存器


先给大家看一张图

这是我设计的使用红石系统进行强冷反应堆控制的设计图,其在IC门内的实现效果如下

论高级控制:红石系统的地位、新应用和前景-第1张图片

单单看整体肯定是没什么意义的,毕竟啥细节都看不清,让我们来到最基本的最小组件,我称之为“流程单元”

论高级控制:红石系统的地位、新应用和前景-第2张图片这就是最基础的控制组件

一个RS门,还有一个配套的单脉冲输出器(每有一次红石信号从低到高的转变就输出一个脉冲)(下方输出口接的那个是配合下一个RS门的)


我习惯把RS门向上的输出口当成机器控制口,当这个口有信号输出的时候,某一些机器开始工作

而很显然,进入该模式的需求就是上一个RS门的向下输出口有信号输出(我一般把这种状态理解为该门对应工序已经完成)

单脉冲输出器的作用是防止上一个RS门的持续信号卡住该RS门的复位

右侧的输入口则是复位信号输入口,如果有高信号则意味着该工序已经完成,可以转入下一步工序。如有必要同样可以加装单脉冲输出器


此时再回到上面的图

论高级控制:红石系统的地位、新应用和前景-第3张图片

这个系统的核心一下子就明朗起来了

3个RS门串联,其中同一时刻只有一个RS门处于激活状态,对应机组激活

而该工序完成之后,该RS门收到关闭信号,停止激活机组,同时向下一个RS门发送激活信号进行下一阶段的工序,三个RS门首尾相接、持续循环


这不就是程序化么


流程控制优劣对比

使用该方法达成程序化和OC相比,虽然操作略微繁琐,但是每个人都可以根据自己的需求定制

而OC的程序编写则是需要一定的lua基础,门槛相对较高

和SFM相比我觉得应该是完胜,因为SFM本身的编写不算便利,而且如果有同一需求的控制系统还得重复编写,反观PRIC只要再印刷一个IC门就行了

由此,红石系统的地位几乎和OC、SFM平起平坐


未来展望

各种高难度的自动化(比如一个IC堆塞两种燃料棒甚至更多需要更换的原件,甚至是有耐久的反射板这种用完就消失的东西)

一般被认为必须借助OC、CC、SFM等才能完成

不过红石流程控制的出现让事情有了转机

其本身的流程性使得我们不必再面对大量代码或是模块发呆,而且IC工作台的功能也使得设计的检验更加快捷方便

相信在未来,红石系统会有更加广泛的应用


备注:

本教程只作为该系统的开发记录和核心原理解释

至于已经开发出来的具体应用,将会放到各mod的教程当中