Minecraft - 集成作物塔 - 红石基础

在介绍作物塔之前先讲一些基本的红石知识。

目录

BUD

方块更新感应器(Block Update Detector, BUD)是Minecraft中绝大部分自动设备的部件,它能够检测方块的更新并产生一次脉冲。因此掌握方块更新是制造自动设备的必备技能~

不过让我郁闷的是,1.11中引入了一个萌萌的方块叫做侦测器,能起到类似BUD的效果。不过由于侦测器的检测范围比BUD小,以及BUD有感应器与执行器可以用同一个方块的优点,灵活性高,因此部分场合还是需要BUD上场,然而对于作物塔中作物生长的检测来说,侦测器其实已经完全足够了。(原本Tricky的方法被官方支持应该是件好事,然而我还是无法避免地感到郁闷。。)

BUD的基本原理是将红石电路置于一种本应不稳定的状态(即通过不同的方式推导线路状态能得到不同的结果),此时电路中的一些处于“叠加态”的结构会停止对电路的变化产生反应(其中本应产生反应的方块即为感应器,一般为活塞),而当感应器周围方块有更新时,电路会重新运行而使得结构被改变且重新复原(之后又会停止反应),这个过程可以产生红石信号。

BUD的一种替代是高频时钟电路,通过不断地暴力尝试而产生类似BUD的效果。替代的前提条件是没有方块更新时,电路信号不会产生额外的破坏。有些情况下,方块更新地过于频繁,使得更新方块本身也成为了BUD开关,或者BUD电路的执行器和感应器产生冲突,这时就只能使用高频信号了(e.g. 刷石机)。

BUD的实现方式很多,一般会根据密排和材料的需要选择对应的BUD。BUD通常需要粘性活塞或者活塞加下落物使得电路复位。下面介绍几种我常用的BUD形式(由于活塞激活的方式较多,因此BUD结构的灵活性很大,每种方案都可以有很多放置方法,只展示其中最便于描述的一种):

粘性活塞 + 红石火把

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
{% minecraft 侧视图 %}
|----基本式|-
|       |rd-$   |rd-$   |       |-
|rd-$   |AB     |AB     |rt-$w! |-
|AB     |rr-$w1 |       |rd-$!  |-
|       |AB     |AB     |AB     |-
|       |       |sp-n   |       |-
|----扩增式|-
|       |rd-$   |rd-$   |       |-
|rd-$   |AB     |AB     |rt-$w! |-
|AB     |rr-$w1 |       |rd-$!  |-
|       |AB     |AB     |AB     |-
|       |       |sp-n   |       |-
|       |       |       |sp-w   |-
{% endminecraft %}

在活塞四周产生的方块更新会被感应到(在扩增式中两个活塞都能起感应作用)。如果活塞用普通活塞,而用沙子作为活塞上方的方块的话,这个电路就会变成高频时钟电路。

这个装置的BUD原理是,中间一层右端激活的红石会使得下方的方块充能,活塞被激活(活塞激活的范围可以参考wiki活塞页面红石页面)活塞激活后会推动上方方块,方块被右端红石充能,使得中间层左侧的电路被充能,这会导致红石火把熄灭,导致中间一层右端激活的红石不再被充能而熄灭。电路产生了矛盾进入不稳定状态,产生了BUD效果。

(粘性)活塞 + 容器

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
{% minecraft 侧视图 %}
|----后部|-
|       |       |rd-$!  |rd-$!  |-
|rd-$!  |rr-$e1!|AB     |AB     |-
|AB     |AB     |       |       |-
|----前部|-
|       |       |       |       |-
|AB     |rc-$w! |AB     |fu-$s  |-
|AB     |AB     |sp-n   |pi-u   |-
{% endminecraft %}

这个BUD方案的好处在于结构精简。左边的活塞是粘性活塞(可以换成普通活塞+下落物),两个活塞都是感受器。容器可以是任何可以产生信号的容器,熔炉、箱子、漏斗都可以,需要在容器中放至少一个物品使得其可以产生信号。该BUD的原理是容器产生的信号通过比较器与中继器的放大,连接到活塞上方方块的背后。本来在这种情况下活塞是被激活了的,会推动上方方块,但是如果上方方块被推动就会导致信号截断,不能传导到背后,这就形成了BUD开关,原理与上个方案相似。

中继器在这个结构中起到的作用是延长信号(因为比较器产生的信号可能很弱),但通过调节它的刻度也能够调节BUD复位的速度。

一种利用BUD制造的自动甘蔗机

相比利用侦测器制造的自动甘蔗机,BUD方案可以在甘蔗生长出第二格时立即首歌,并且可以通过BUD的延长来精简体积。

活塞 + 红石块

由于粘性活塞较难获得(单机玩根本就找不到史莱姆好吗),因此再介绍一种替代方案。“粘性”在电路中的作用是让截断方块复位,因此可以通两个活塞对置来实现复位。下面就是一种普通活塞与红石块结合产生BUD的方案:

1
2
3
4
5
6
7
{% minecraft 侧视图 %}
|rd-$   |AB     |pi-s   |       |-
|AB     |rr-$e1 |       |       |-
|       |AB     |br     |rd-$!  |-
|       |       |AB     |AB     |-
|       |       |pi-n   |       |-
{% endminecraft %}

同样,在这个电路中活塞是感应器。

粘性活塞 + 下落物

如果要使用下落物(沙子、沙砾)来做BUD的话,仍然需要粘性活塞来复位。相比于其他BUD方案,使用下落物的特点在于BUD反应很快,但是复位较慢(下落速度较慢)。一种典型的结构如下

1
2
3
4
5
{% minecraft 侧视图 %}
|rd-$!|sand|rr-$w1!|ab|le-$w!|-
|ab   |gs  |ab     |  |      |-
|     |sp-n|       |  |      |-
{% endminecraft %}

沙子代表下落物(还可以是沙砾),萤石代表不充能的透明方块(还可以是玻璃、海晶灯等)。这个方案还有个特点是体积小,但是噪音会比较大233

BUD的扩增(延长)

在前面的BUD方案中提到了BUD的扩增,这是一种非常实用的设计。这里的BUD扩增指的是感应器的增加与延长,而不仅仅是红石线路的延长。

搭建好基础的BUD后,可以在感应器(一般是活塞)周围再放置一个活塞,并让活塞可以被BUD电路的执行器一段激活(例如第一个BUD例子第二个BUD例子所示)。这种情况下,新加入的活塞受BUD电路的激活本应推动空气,但活塞的动作会导致基础BUD的感应器周围产生更新(出现了活塞头),导致BUD电路中断,这样就可以让新活塞也成为了BUD的一部分。

向两个方向延长的BUD结构

再用示意图举一个双排扩增BUD的例子:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
{% minecraft 俯视图 %}
|----Level1|-
||||||-
||pi-s|pi-s|pi-s||-
|pi-n||||pi-u|-
|pi-w|||pi-n||-
|pi-w|||pi-w||-
|pi-w|||pi-w||-
|ellipsis-ns|||ellipsis-ns||-
|----Level2|-
||||||-
||||||-
||ab|ab|ab|ab|-
||ab|||ab|-
||ab|||ab|-
||ab|||ab|-
||ellipsis-ns|||ellipsis-ns|-
|----Level3|-
||||||-
|||||ab|-
||rd-se!|rd-ew!|rd-ew!|br|-
||rd-ns!|||rd-ns!|-
||rd-ns!|||rd-ns!|-
||rd-ns!|||rd-ns!|-
||ellipsis-ns|||ellipsis-ns|-
|----Level4|-
|||||ab|-
|||||rr-n1|-
|----Level5|-
|||||rd|-
|||||ab|-
|||||pi-d|-
{% endminecraft %}

这个技巧是BUD优于侦测器的特点之一,因此在之后的文章中作物塔的自动收割还是通过BUD实现(其实是因为之前没玩过1.9以后的版本),不过改成侦测器的话应该也不会太难,并且也可以降低电路复杂度。

红石布线

红石电路之所以困难,原因之一是布线非常麻烦,由于Minecraft是方块化的,因此布置红石有一定的限制,不像Altium之类的那样方便。这里也简单介绍一下红石布线的技巧。

信号向上传递

参见Wiki纵向传输页面

作物塔很高,如果使用半自动设备,并且希望在底部操作开关的话就会遇到红石信号向上传递的问题。此外在布置红石电路的时候也会遇到向上传递的需求。

信号纵向传递主要有以下几种方式:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
{% minecraft 侧视图 %}
|----阶梯式|-
|rd-$!  |       |       |-
|AB     |rd-$!  |       |-
|       |AB     |rd-$!  |-
|       |       |AB     |-
|----红石火把(向上)|-
|       |rt-$   |       |-
|       |AB     |       |-
|       |rt-$!  |       |-
|       |AB     |       |-
|----红石火把(向下)|-
|AB     |rt-$w! |       |-
|       |rd-$!  |       |-
|rt-$e  |AB     |       |-
|rd-$   |       |       |-
|----半砖|-
|       |rd-$!  |       |-
|rd-$!  |ts-$   |       |-
|ts-$   |rd-$!  |       |-
|rd-$!  |ts-$   |       |-
|----萤石|-
|       |rd-$!  |       |-
|rd-$!  |gs     |       |-
|gs     |rd-$!  |       |-
|       |gs     |       |-
{% endminecraft %}

原理是半砖和萤石可以交叉向上连接红石而不阻隔信号,红石火把能充能上方或下方的方块。红石火把传递的方案有一个限制就是纵向传递会使信号交替改变(红石火把相当于非门),因此如果要保持信号不变的话需要使红石火把的层数为奇数。

这里面最常用的方法是半砖电路和红石火把,廉价并且占地小。

密集布线

在集成化的过程中,密集布线经常会让人头疼。如何使红石电路占地最小并且隔离其他电路的影响是集成的关键。布线据我所知没有一个统一的方法,但是有如下一些要点:

  • 在斜交叉时不透明方块会阻断线路,透明方块不会
    1
    2
    3
    4
    5
    6
    7
    8
    
    {% minecraft 侧视图 %}
    |----不连通|-
    |rd-$   |AB     |-
    |AB     |rd-$!  |-
    |----连通|-
    |rd-$!  |glass  |-
    |AB     |rd-$!  |-
    {% endminecraft %}
  • 注意避免红石在规划外的地方出现上下两层相连的情况
  • 当两条不同的红石线路并排时使用继电器可以将两条线路隔离
  • 在集成自动机构时,尽量使得红石机构位于一个平面内,这样有利于机构的密排,密排时适当错位避免以错误的红石连接。

作物塔后处理

物品分类

在我的作物塔中,所有作物都是水流汇集后通过一个漏斗收集的,如果仅仅放在一个箱子里会比较乱,不利于取用(如果你有MOD就当我没说)。因此在最后接一个分类系统是不错的选择。

物品分类系统有很多的实现方式,在这里介绍非常朴素而古老的一种,利用漏斗的信号控制来使得漏斗中的物体保持一定的量,再利用漏斗只能叠加同类物品来进行分类。

基本原理是漏斗中每1/3组物品会输出1个信号强度,以及如果漏斗五格都有物品,漏斗只会吸收它所含有的物品类型。因此可以通过占位物品实现分类,输出信号控制开关,避免占位物品也被吸收走。

具体的结构如下:

1
2
3
4
5
6
7
{% minecraft 侧视图 %}
|----单层分类器截面|-
|S      |ho-$s  |       |       |       |-
|C      |ho-$d  |AB     |rc-$e! |AB     |-
|ch-$   |ho-$w  |       |ts-$   |rd-$!  |-
|       |rt-$e! |AB     |rd-$!  |AB     |-
{% endminecraft %}

其中S漏斗是物品收集管道,C是分类装置。C漏斗需要在其中预先放置好需要分类的物品和占位物品。例如如果要分类仙人掌,用木棍作为占位物品,则可以放置成如下样式

物品分类摆放样式

当S漏斗有物品通过时,物品会优先向下漏。如果是仙人掌,那么就会漏进C与原有的仙人掌叠加,如果不是,由于占位物品的存在则无法漏入(除非通过的物品是占位物品)。这就实现了分类功能。而红石电路能够保证C漏斗中物品数少于1/3组时不继续下漏,能够保护占位物品不被漏掉。

C漏斗中,第一格放上需要分类的物品,一个即可,剩下四格放占位物品(什么都可以),但总量不要超过1/3组。占位物品越多,漏斗中残余的分类物品(这里是仙人掌)就越少。但如果少到没有了,那这个分类器也就失效了。

物品自动搬运

当物品从作物塔中收集下来以后,如果作物塔离储存物资的地方比较远,可以通过物品搬运系统来进行自动转移。一般这种功能是通过运输矿车来实现的。具体的红石设计在Wiki里面讲的已经很清楚了,这里就不再赘述~

物品下漏限制

这个功能是个小trick。当漏斗管道接上熔炉进行燃烧的时候,如果漏斗管道中的物品生产较慢,则会导致熔炉中的燃料极大浪费。这个时候可以通过限制物品下漏来使得进入熔炉中的物品不会太少。

下面这个装置可以实现当物品数量达到23以后才会继续下漏:(该方案仅支持可烧制的物品,如果混入不可烧制的物品则会无效)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
{% minecraft 俯视图 %}
|----|-
|rd-se!|rd-ew!|rr-w1!|rd-ew!|rd-ew!|rd-sw!|-
|rr-s1!|rr-w1|rd-ew|||rd-ns!|-
|ab|ab|ab|ab|ab|rd-ns!|-
|ho-d|rc-e|rd-sew|rr-e1|ab|rr-n1!|-
|||rd-ne|rr-e1|ab|rt-w!|-
|----|-
|||||||-
|||rt-s||||-
|rd-ew!|rd-ew!|ab|rd-ew|rd-sw|ab|-
|S||||rt||-
{% endminecraft %}

选取数字23是因为这是它在比较器产生的信号阶梯中物品数量较少时最接近8的倍数,因此能够较好地节省煤炭。(当漏斗中有2组又32个物品时刚好可以产生8格信号,但是这会使得红石线路体积增大,并且增长物品处理周期,因此还是选用了23个物品产生2格信号的方案。)当然,如果使用别的燃料的话可以针对性地延长从比较器到中继器中间的红石,就可以挑选最省燃料的下落限制值了。(各种燃料一次能烧多少个物品见Wiki


以上就是在作物塔中使用到的基本红石原理,如果看不太懂没关系,作物塔搭出来就能慢慢理解了233~接下来就会介绍作物塔的详细构造了。

使用 Hugo 构建
主题 StackedJimmy 设计,Jacob 修改