Minecraft Wiki

除另有声明,转载时均必须注明出处若簡繁轉換出錯,請以遊戲內為準请勇于扩充与修正内容有兴趣逛逛我们的微博沟通交流,欢迎到社区专页需要协助,请在告示板留言

了解更多

Minecraft Wiki
Advertisement
Ic translate
此条目的(部分)内容需要翻译。

你可以帮助我们来翻译此条目,但请勿使用机器翻译

村庄链是一个把村庄中心逐渐移动到靠近或另一个村庄中心的过程。这个过程通常用来建造高效紧凑的铁傀儡陷阱。这个方法首先在1.4.2中被发现,并一直沿用至今。这个过程主要由TangoTek用户发现并推广。

这个TangoTek介绍村庄链的方法的Youtube视频。

本教程将会教你如何进行村庄链过程,这个过程通常用于从零开始建造一大片高效的农场。如果你只想看看例子,请查看这篇教程。这个教程仅适用于Java版,本教程的信息在其他版本可能不适用。

新的村庄信息Mod绝对会帮到你,因为它是唯一一个帮助你在不会出现漏洞的情况下查看村庄信息的Mod。

类别

多中心和单中心

首先发现的方法是多中心村庄链。它们组成的村庄中心通常排成一条直线并且不会在同一位置上。

另一方面,单中心村庄链在晚些时候被发现。它们的村庄中心在同一个点里。

多中心和单中心村庄链的对比

  • 优点
    • 建造过程更简单。
  • 缺点
    • 空间利用率低。
    • 如果村庄中心不能重新设置,需要放置和破坏大量的,如果是自动设置村庄中心的则需要更多的门。
    • 需要更多的村民。

不可重新设置与可重新设置

因为区块重新加载的速度很快(通常在自动保存中完成,并影响大多数类型的区块加载器),基本上会清除在区块中存储的所有村庄数据并重新计算。村庄链所在的区块必须在游戏打开时不被卸载,否则所作的努力会白费。

对于这个问题的方案是把村庄链放在出生点区块中或其等价物,然后使用一点小技巧来使区块处于加载状态,即使是在没有玩家在与该区块处于同一维度时(此方案属于不可重新设置的方案),或在玩家需要时重新组建村庄链(此方案属于可重新设置的方案)。

可重新设置的方案主要用在区块不能重新加载时(例如在Spigot 服务器上),或村庄链过程非常复习不能手动完成时(例如单中心村庄链)。

游戏机制和村庄链所使用的游戏机制

注:

  1. 在阅读下面的内容之前,请首先阅读村庄机制教程以了解相关机制的基本信息。
  2. 本段落所涉及的游戏机制仅适用于1.8及更高版本,但是关于游戏机制的论述适用于所有有村庄的版本。
  3. 为了使文章变得简洁,本段落图示中所使用的木板栅栏分别代表有效门的位置和村庄半径。原木的侧面代表有一扇有效门的村庄中心,原木的上面代表没有门的村庄中心。屏障代表一些不重要的东西。重要度高的图标可能会覆盖重要度低的图标。这些图示的最小村庄半径是5格,并且合并后的村庄半径是最小半径+5格而不是像游戏中最小半径为32格,合并后为最小半径+32格。

村庄合并优先级与边界扩展器

如果所有的区块包含没有被重新加载的村庄,只会在一位村民检测到新的门时(技术上来讲只算门下面那一格)才考虑村庄合并。如果在一定的范围内有多个村庄,只筛选适合的村庄(用一扇门便可合并)进行合并。范围内其他所有村庄都会被忽略。因此,重叠边界的村庄成为可能。

在1.8之前,旧村庄更适合与新村庄合并。因此,那个时候的村庄链主要是用合并范围以防止最初的村庄被合并。而在1.8之后,更靠近门的村庄更适合与门合并。如果多个村庄距离它们的中心和一扇门的距离相同,这一扇门会倾向于计入旧的村庄。这使得村庄链过程变得更困难,但也变得更可预测,允许村庄从远处一点扩展以与原来存在的村庄重叠。旧版本不会破坏村庄链,因为村庄会一直保持在被加载状态,但旧的刷新机制不会生效。

边界扩展器

在重叠村庄边界的过程中,每次循环橡木村庄与桦木村庄都会逐渐靠近,直到不能够使用该方法使二者的中心更加靠近。首先建造橡木村庄,因此游戏会倾向于选择橡木村庄而不是桦木村庄。注意圆形村庄是向西移动的。这个方法与TangtoTek的村庄链方法(Iron Titan)殊途同归。

村庄边界扩展器是一个有效房屋,正如它的名字那样把一个村庄的边界逐渐扩展使它的边界更接近另一个村庄的中心。这个扩展器应该尽量靠近其他村庄,但必须与要扩展村庄边界的那个村庄靠得更近。然后,放置在其他村庄中心的门要移除,以便扩展器变成村庄的中心,允许使用扩展器继续该过程直至使用这个方法不能靠近村庄中心了为止。扩展的村庄做到这一点后,可以向它或其他村庄放置更多的门,因此使得它们有足够的门来生成铁傀儡

村庄中心及其重定向

村庄中心是连接所有有效房屋的线条所组成的图形的中心,但它也会和圆形村庄(包含村庄所有门的最小范围)的中心(或圆心,在圆形村庄中是同一个点)弄混。因此,越靠近村庄一部分有效房屋的中心,就越靠近村庄的中心即那一部分的圆心。

村庄中心重定向

使用了一大堆有效房屋后,你可以“重定向”村庄中心以便使其更靠近这一堆房屋的圆心,然后使用扩展器扩展村庄半径到超过这个重定向的中心。如果你想使旧村庄完全与另一个村庄融合,那么这个技术很重要,新村庄会变成单中心村庄链的重要一环。

要做到这一点,一个好方法是先沿着新村庄建造边界扩展器,然后使用1个小重定向中心和1个大重定向中心来帮助更新的村庄到达铁傀儡陷阱的另一边,从而允许建造单中心村庄链。

多个村庄中的一个村民

一个村民可以在多个村庄里,只要它们在这些村庄边界的里面,这也是单中心村庄链比多中心村庄链的主要优势和村庄链比传统的铁傀儡陷阱的主要优势。这个方法可以把要使用的村民和几百个降到约30个左右。

房屋检测机械&分层链式村庄+门检测+门不检测

每个村民都有一个隐藏的计时器,从随机的秒数开始倒数,最小值为2.5秒,最大值为6秒。计时器达到0后,在一个32x 8 x 32的盒子中检测到新的有效门(“房子”),并再次检测到旧门。盒子的中心总是在相应村民的腿所在街区的西北边缘,并且总是在与村民相同的垂直高度上。通常只计算门的底部块,然而检测盒的底层能够检测上部块,但是这不能用于检测门两次,并且只影响中心数学。在这两种情况下,门块都必须完全在待检测的盒子内部。这种限制可以用来防止增加新的门,但是由于村民不能自由垂直移动,垂直检测范围更加有限,需要分开的房屋通常堆叠在一起,通常只使用垂直限制。

此外,在被发现为房屋后,门不再需要“外部”或“内部”来继续被视为房屋。这对于堆叠多扇门尤其重要。除了自己被摧毁,或者它被重新装上子弹,一扇门只有在没有村民在60到64秒的时间里重新检测的情况下,才能停止被视为一座房子。这既是有用的,也是有害的,因为它允许在没有玩家交互的情况下重复使用链接机制,但也可以打破一个被锁住的村庄。

分层链式村+门被发现+门未被发现

了解这些机械原理,建立一个分层的链式村庄,保持门的检测和不被发现的门是相当容易的。这些视频是在实践中使用的例子:

在这段视频中,尽管设置了坚固的街区,阻碍了天窗到达第一层(已经有锁链的村庄),但农场仍然正常运转。主要村民被分成两个单独的房间,以便他们能够正确地发现门。可以听到TangoTek提到6秒规则。


在这个视频中,通过将村民从门移开,锚和相应的扩展器可以在没有玩家交互的情况下被重用。通过移动村民,同样的复位机制可以用于多层门。


The Iron Phoenix 使用黏液块将门层分开,因为它是唯一可以放置门的透明块。


The north-west-downward preference & Direction-dependency

As the game's internal integer rounding always rounds integers down, village centers are always placed further to the north (negative Z direction), the west (negative X direction) and the downward direction (negative Y direction) from the actual centroid of the village. This also affects the golem spawning box. The golems spawn inside a 16*6*16 box that has to fit perfectly into the block grid. As a result, the center of that box is never the center of the village, and the center of the village is always 0.5 block further to all 3 positive directions than the center of the golem spawning box.

Direction-dependency

The rounding mentioned above makes chained villages direction dependency. This should be kept in mind when designing any chained villages, as this can both break and help village chaining.

Advertisement