
省流助手:
作者翻代码发现了关于叶绿矿的两个知识点:
1. 叶绿砖也能蔓延叶绿矿,同时不会被计入数量限制
2. 颠倒世界大幅提高了叶绿矿的密度上限

图1:节选自`Terraria.WorldGen.cs` 中的 `hardUpdateWorld()`方法
图1代码片段展示了“丛林草生成叶绿矿”和“叶绿矿生长”的代码。可读出如下内容:
1. 世界需处于困难模式,选中的图格不能被虚化
2. 如果世界不是颠倒世界,这个图格还应位于地表线与洞穴线的中间以下
3. 若选中的图格为丛林草,有1/300的概率尝试生成叶绿矿
4. 丛林草在生成叶绿矿时,会随机等概率选择自身半径10格内的一个图格,当满足:
1. 这个图格在世界内
2. 这个图格不为空
3. 这个图格是淤泥
4. 这个图格上方不是树、生命果、世纪之花花苞
5. 这个图格满足叶绿矿数量限制
时,将这个图格替换为叶绿矿
4. 若选择的图格为叶绿矿或叶绿砖,有2/3的概率尝试生成叶绿矿
5. 当叶绿矿或叶绿砖生成叶绿矿时,随机等概率选择自己毗邻四格中的一个图格,当满足:
1. 这个图格在世界内
2. 这个图格不为空
3. 这个图格是淤泥或丛林草
4. 这个图格满足叶绿矿数量限制
时,将这个图格替换为叶绿矿

图2:`Terraria.WorldGen.cs` 中的 `Chlorophyte()`方法
图2代码即前文所述的“叶绿矿数量限制”。可以读出如下内容:
1. 如果世界是颠倒世界,那么:
1. 这个图格半径31格内,不能超过45格叶绿矿
2. 这个图格半径77格内,不能超过1950格叶绿矿
2. 如果世界不是颠倒世界,且这个图格在洞穴线及以下,那么:
1. 这个图格半径35格内,不能超过40格叶绿矿
2. 这个图格半径85格内,不能超过130格叶绿矿
3. 如果世界不是颠倒世界,且这个图格在洞穴线以上,那么:
1. 这个图格半径52格内,不能超过20格叶绿矿
2. 这个图格半径127格内,不能超过65格叶绿矿
以上内容反复出现了“图格半径x格内”的表述,它的定义如下:
以这个图格为中心,四向延申x格,所构成的边长为2x+1格的正方形内的所有方块
综上,我们就可以得出开篇的结论:
1. 叶绿砖也能蔓延叶绿矿,同时不会被计入数量限制
2. 颠倒世界大幅提高了叶绿矿的密度上限:图格半径31格内,不能超过45格叶绿矿;范围2的限制一般没有意义
不确定这是否是bug,还是刻意引入的特性。实测完全验证了这些发现。至少在游戏改变了这部分机制以前,我们完全可以好好利用这些内容,来设计一套叶绿农场。
叶绿农场
自生长型
由于叶绿砖可以生长出叶绿矿,且不会在数量限制计数时被计入,所以我们自然应当用叶绿砖作为“种子”来种植叶绿矿。图3是我给出的一种设计,它虽然不是生长效率最高的,但却是用起来最舒服的:玩家开启智能光标,一路挖过去就是了;收割结束只需填补淤泥,管壁就是种子。

图3:一种便于收割的自生长型叶绿农场
图3中结构可以无限水平延申,上方为普通世界洞穴的方案,下方为颠倒世界的方案;绿色雕像给出了叶绿砖的长度;白色雕像给出了白团队平台的长度;黄色雕像GAP则给出了竖直堆叠时,叶绿砖间的间隔。
丛林草型
我们也可以利用丛林草来获取叶绿矿。由于丛林草催生叶绿矿的效率只有叶绿矿自己生长的1/200,这一步我们应当以效率为先,得到叶绿后,应尽早转入叶绿自繁殖。下面从在理论中估计一下应当如何取舍淤泥和丛林草。
显然,区域内应当有尽量多的丛林草和淤泥。假设区域内已经尽量填满了丛林草和淤泥,此时,两者的数量和一定。选择丛林草的概率与丛林草的数量成正比,而选择后成功长出叶绿矿的概率与淤泥的数量成正比,因此最终长出叶绿矿的概率与丛林草的数量和淤泥的数量的乘积成正比。可以看到,丛林草和淤泥的数量满足基本不等式,当两者相等时,长出叶绿的效率是最高的。

图4:一种较高效率的丛林草型叶绿农场
我们显然可以按图4左侧的方案来做,但这种不免施工实在太过麻烦。在实践中,我们可以对效率做出一点让步,换来更低的施工难度。我给出的方案如图4中间所示,右侧则是方案的拆解图,以便看得更清楚。
我给出的方案有以下优点:
1. 易于施工。整体结构由8×8格的正方形构成,中间以1×2格的小矩形链接,结构明朗,易于建造。
2. 丛林草可以自然蔓延。只需要在于空气接触的任何位置种草,它自然会长满整个结构,无需玩家手动一个个放置。
3. 充分利用了内部空间。内部每8格丛林草共用1格空气,最大限度地利用了空间。
4. 充分利用了边界条件。实践中搭建的结构总是有限大小的,边界全部都是丛林草,充分利用了边界外的空气。
5. 效率较高。当整体由3×3正方形构成时,那么丛林草与淤泥的比值恰为1;当边长区域无时,比值为1.11…。
当然,我不觉得这是什么实用的东西,因为无论如何都不如你直接去丛林挖一圈。但秉持着“可以没用,不能没有”的宗旨,我还是设计了上文的农场。也许空岛中会用到吧,正常游戏我实在想不到怎么会有人需要种叶绿矿。