异星工厂吧 关注:63,672贴子:414,620

回复:品质产线与迷你超市的终极通解——浅谈配方切换电路与产能保护

只看楼主收藏回复

答案是用另一个锁存器暂存旧配方,并在配方运算器输出结果变动时暂时覆盖掉新配方,等待偶数次合成开始后再停止锁存。
这样的设计不需要引入任何狗屁倒灶的时钟或者物品计数,也不需要奇奇怪怪的触发条件,简洁而高效

听起来很复杂?别急,让我慢慢解释
配方运算器的信号变动只由物品存量决定。由于我们不使用时钟和延时,配方运算器的信号变化都是即时的。
接下来我们再补充一个知识点:绿条开始走之后,组装机的配方无法被信号切换。绿条开始走之后,即使组装机的配方被信号改变,它也会等到绿条走完之后再切换到新的配方。
下面就是演示。可以看到,不论输入信号如何改变,机器总是会等到绿条走完后再响应。


IP属地:中国香港35楼2025-10-25 18:14
回复
    这个特性其实是Wube设计出来防止玩家滥用大于100%的产能加成,防止玩家在机器的绿条还没走完,原料没有实际消耗的时候就拿到产物。
    手动切换配方自然没有这个限制,但是众所周知,异星工厂是个自动化游戏,玩家要是都沦落到手动打螺丝刷物品了那也没必要玩这个游戏了。
    下面是“打螺丝”bug的演示。一般刷的物品是传说量子处理器,因为可以分解出各种传说产物。


    IP属地:中国香港37楼2025-10-25 18:16
    收起回复
      2026-01-20 10:53:32
      广告
      不感兴趣
      开通SVIP免广告
      配方运算器的信号变动只由物品存量决定。由于我们不使用时钟和延时,配方运算器的信号变化都是即时的。
      假如配方运算器的输出在第奇数次合成开始时(也即合成计数器=0的时候)因某种原因改变,在此次奇数合成的绿条走完之后,配方就会切换成新配方,导致我们损失掉一半的产能条。
      反之,如果配方运算器的信号输出只在偶数次合成开始后(也即合成计数器等于1的时候)改变,那么我们就永远会在跑完产能条后刚好切配方。
      下面的动图清晰演示了这一特点。在合成次数为0的时候,我们正在跑第奇数次合成,此时我们应当禁止配方在这次合成后更改,而当合成次数到1的时候,我们正在跑第偶数次合成,应当允许配方在这次合成后改变。

      因此,我们的配方锁存应当在合成次数为0的时候用旧配方信号锁定信号输出,在合成次数为1的时候反而可以不锁定。锁定信号输出的方法也很简单,用非常大的旧配方信号覆盖掉新信号或者旧信号就行,反正选择运算器只会输出最大值。这里我们选择让配方锁存输出1G的旧配方信号,用来在奇数次合成进行时禁止配方切换。

      这样我们仅仅只是阻止了不合时宜的配方切换,而不是每次合成到偶数次的时候都要刻意打断配方信号,重新计数,因此实现了连续合成


      IP属地:中国香港38楼2025-10-25 18:33
      回复
        那么接下来就是举一反三了。核心思路:假设绿条走完n次后产能条刚好走完,那么我们只能允许在第n-1次合成之后切换配方,此时第n次的绿条开始走了,切换配方的效果会在第n次绿条走完之后生效,从而保护产能条。
        具体来说,140%产能的例子中,配方完成信号的周期为1,1,2,1,2,那么我们把时间点卡在最后一次合成之前,在信号总数小于1+1+2+1=5的时候,禁止配方切换。当信号总数达到5,我们就进行了n-1次合成,可以允许切换配方了


        IP属地:中国香港39楼2025-10-25 18:41
        回复
          这样的产能保护电路还有一种有趣的变种应用——可适应不同产能科技的产能保护
          产能科技的加成每一级是10%。那么我们只要保证合成周期是10次就没问题了!问题在于随着产能加成的改变,配方完成信号的规律与周期也会随之改变。那么我们该如何监测绿条完成次数?

          答案是用下降沿检测器监测原料消耗!
          下降沿检测器的原理我就不多讲了,简单说就是利用运算器的1tick延时来在某个信号值变小时产生1tick的脉冲信号。这个脉冲信号刚好可以用于计数,不过需要一些额外的信号处理,所以电路体积较为庞大

          上下两张图给出了下降沿检测器的两个组件——一个反转信号的算术运算器,还有一个判断运算器。


          IP属地:中国香港40楼2025-10-25 18:49
          收起回复
            产能保护电路的思路基本上就讲到这里。我的这个设计可以保证机器尽可能少切换配方,提高机器利用率,逻辑与结构相当简单,不涉及输入物品计数和时钟,并且对任何配方都同样通用,这在配方切换中是非常大的优势
            弊端嘛......其实也有,如果输入物品数量不足,可能会导致绿条无法第一时间开始跑,从而允许机器在完成了奇数次合成后卡在原地,然后切换配方。这个产能保护思路依赖于绿条开跑后机器无法切换配方的特性,因此需要保证机器供料稳定。
            不过嘛,你都用锁存器切配方了,把原料下限拉高一点防止机器断粮也是举手之劳了
            对于极高速配方,这个电路处理的效果也一般,因为绿条进度太快,产能保护电路都还没反应过来呢下一个绿条就走完了。因此我在高速合成齿轮的组装机那里额外加了个保险装置,确保没有配方装载的时候配方锁存器与合成次数锁存器会被强制清空。


            IP属地:中国香港41楼2025-10-25 18:56
            回复
              讲了这么多,吧友们可能有个疑问:你嘴上说的好听,可以在一个运算器里写无数种条件,那真让你写几十个配方的条件,你不得写死啊?
              的确,这触及到了这类电路的另一个问题——写条件实在是太麻烦了。镇楼图第三张的那个组装机切换电路,配方运算器中保守估计也有450个以上的条件,这要是一个个写不得写死人啊,有没有什么更简单的方法呢?


              IP属地:中国香港42楼2025-10-25 19:07
              回复
                有的兄弟有的!
                第一个能想到的自然是参数化蓝图


                将参数0设置成产物,参数1到5都设计成原料,再通过不同数字区分每个条件右侧的值,这样你只需要填入需要的配方,以及配方各种原料的上下限值就可以自动生成配方锁存器了,更具体的东西我就不讲了,愿意探索这玩意的玩家肯定也能搞明白,这个蓝图还可以设置产物缓存的上下限。


                IP属地:中国香港43楼2025-10-25 19:11
                回复
                  2026-01-20 10:47:32
                  广告
                  不感兴趣
                  开通SVIP免广告
                  但是参数化蓝图也只能解决单个配方的问题。你就算想塞进去多个配方,你也没这么多参数可用啊?那我们要怎么写出来有几百个条件的锁存器呢?
                  答案是通过json编辑合并条件
                  众所周知,异星工厂的蓝图字符串只是通过base64加密过的json文件。我们可以用第三方网站把蓝图字符串解码成json,但是如果我告诉你,原版异星工厂就有内置的json输出功能呢


                  IP属地:中国香港44楼2025-10-25 19:14
                  收起回复
                    要想开启这个功能,我们需要进入隐藏设置菜单
                    首先ctrl alt单击设置按钮

                    你会发现设置里多了一项其余,这里面就是各种各样的开发者选项和隐藏设置了
                    直奔主题,右上角搜索框搜索json,找到这一项,打勾即可
                    之后我们就可以在ctrl alt左键点击蓝图导出按钮

                    然后就可以直接复制蓝图的json了
                    有了蓝图json之后,合并条件,增删条件,乃至批量操作品质,交换红绿线配置都变成了一个ctrl+F和一些剪切粘贴的事。
                    之前的那个63条件锁存器转化成json格式后居然有一万行以上!这要是手写真不知道得写到什么时候去了


                    IP属地:中国香港45楼2025-10-25 19:19
                    收起回复
                      已经太专业了。逐渐脱离游戏,感觉像是编程学习模拟软件了。所以我们这些臭打游戏的就等着你们大佬做出成品蓝图用就完事。


                      IP属地:安徽来自Android客户端46楼2025-10-25 19:25
                      回复
                        品质升级产线和迷你超市相关的内容我还是留到下一次吧,光讲明白这一堆电路就很费劲了,总之这几天之内我会发布一套可模块化无脑拓展,可升级的总线架构草星转转乐,这个工厂是品质产线,结晶产线,碳纤维产线,火箭产线,沃土产线,迷你超市的N合一,可以稳定产出大量传说白爪生物室和传说碳纤维,先在这里放个小预告

                        本帖完结撒花,镇楼图的这些切配方产线我会在近期一一放出,敬请期待


                        IP属地:中国香港47楼2025-10-25 19:25
                        回复


                          IP属地:浙江来自Android客户端48楼2025-10-25 21:08
                          收起回复
                            品质产线的


                            IP属地:北京来自Android客户端49楼2025-10-27 00:39
                            回复
                              2026-01-20 10:41:32
                              广告
                              不感兴趣
                              开通SVIP免广告
                              感觉很厉害的教学贴 先收藏了


                              IP属地:河南50楼2025-10-27 16:25
                              回复