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)殊途同归。

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

Properties of the village center & Center anchor

The village center is the centroid of the shape formed if all the valid houses' positions are connected, however it can also be confused with the center (or centroid, it is the same in case of a sphere) of the bounding sphere of the village (the smallest sphere possible that contains all the doors of the village). Consequently, the more populated with valid houses a section of the village is, the nearer the village center is to the centroid of that specific section.

Center anchor

Using a big cluster of valid houses, one can “anchor" the village center so that it is more likely to be near the centroid of the cluster, then use extenders to extend the village radius way past the anchor itself. This technique is crucial if you want to make it so that an old village is completely inside another, new village, which in turn is crucial for concentrical village chaining.

A good was to do this is to first create the extender along with a new village; then, use 1 small and 1 big anchor to help the newer village reach the other side of the iron farm, allowing for concentrical village chaining.

One villager in multiple village

A villager can be inside multiple villages as long as they are inside the border of those villages, which is the prime advantage of concentrical chained villages over non-concentrical chained villages, and of any type of chained village over traditional iron golem farming. This can reduce the villagers cost from hundreds down to 30 or so.

House detection mechanics & Layered chained village + Keeping doors detected + Undetecting a door

Each villager have a hidden timer that counts down from a random number of seconds, the minimum being 2.5 seconds and the maximum being 6 seconds. After the timer reaches 0, new valid doors ("houses") are detected and old doors are re-detected in a 32 x 8 x 32 box. The center of the box is always on the north-west edge of the block the legs of the corresponding villager is in, and it is always on the same vertical level as the villager. Usually only the bottom block of a door is counted, however the bottom layer of the detection box is able to detect the upper block, however this cannot be used to detect a door twice, and only affects the center math. In both cases the door blocks have to be completely inside of the box to be detected. This limitation can be used to prevent new doors from being added, however as villagers cannot move vertically freely, the vertical detection range is more limited and houses that need to be separated are usually stacked on top of each other, only the vertical limitation is often used.

Additionally, after getting detected as houses, doors no longer need an "outside" or "inside" to be kept being considered as houses. This is especially crucial in stacking multiple doors.

Aside from having itself destroyed, or having the chunk it is in reloaded, a door can only stop being considered as a house if there is no villager that re-detects it for about 60 to 64 seconds. This is both useful and harmful as it allows chaining mechanisms to be reused without player interaction, but can also break a chained village.

Layered chained village + Keeping doors detected + Undetecting a door

Knowing these mechanics, making a layered chained village, keeping doors detected and undetecting doors is quite easy. These videos are example of those mechanics being used in practice:

In this video, despite solid blocks being placed, blocking the skylight from reaching the 1st floor (with already chained villages), the farm still functions properly. The main villagers are divided in 2 separate chambers so they can detect the doors properly. TangoTek can be heard mentioning the 6-second rule.


In this video, by moving villagers away from the doors, the anchors and the corresponding extenders are able to be reused without player interaction. By moving the villagers around, the same reset mechanism can be used for multiple layers of doors.


The Iron Phoenix uses slime blocks to separate the door layers because it is the only transparent block that doors can be placed on.


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