本篇教程由作者设定未经允许禁止转载。
红石系统现状
红石系统,作为原版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门内的实现效果如下
单单看整体肯定是没什么意义的,毕竟啥细节都看不清,让我们来到最基本的最小组件,我称之为“流程单元”
这就是最基础的控制组件
一个RS门,还有一个配套的单脉冲输出器(每有一次红石信号从低到高的转变就输出一个脉冲)(下方输出口接的那个是配合下一个RS门的)
我习惯把RS门向上的输出口当成机器控制口,当这个口有信号输出的时候,某一些机器开始工作
而很显然,进入该模式的需求就是上一个RS门的向下输出口有信号输出(我一般把这种状态理解为该门对应工序已经完成)
单脉冲输出器的作用是防止上一个RS门的持续信号卡住该RS门的复位
右侧的输入口则是复位信号输入口,如果有高信号则意味着该工序已经完成,可以转入下一步工序。如有必要同样可以加装单脉冲输出器
此时再回到上面的图
这个系统的核心一下子就明朗起来了
3个RS门串联,其中同一时刻只有一个RS门处于激活状态,对应机组激活
而该工序完成之后,该RS门收到关闭信号,停止激活机组,同时向下一个RS门发送激活信号进行下一阶段的工序,三个RS门首尾相接、持续循环
这不就是程序化么
流程控制优劣对比
使用该方法达成程序化和OC相比,虽然操作略微繁琐,但是每个人都可以根据自己的需求定制
而OC的程序编写则是需要一定的lua基础,门槛相对较高
和SFM相比我觉得应该是完胜,因为SFM本身的编写不算便利,而且如果有同一需求的控制系统还得重复编写,反观PRIC只要再印刷一个IC门就行了
由此,红石系统的地位几乎和OC、SFM平起平坐
未来展望
各种高难度的自动化(比如一个IC堆塞两种燃料棒甚至更多需要更换的原件,甚至是有耐久的反射板这种用完就消失的东西)
一般被认为必须借助OC、CC、SFM等才能完成
不过红石流程控制的出现让事情有了转机
其本身的流程性使得我们不必再面对大量代码或是模块发呆,而且IC工作台的功能也使得设计的检验更加快捷方便
相信在未来,红石系统会有更加广泛的应用
备注:
本教程只作为该系统的开发记录和核心原理解释
至于已经开发出来的具体应用,将会放到各mod的教程当中