Sparse Structures

Sparse Structures

一个混合模组,能让所有结构(包括非原版的结构)更加分散(本质上是让它们更稀有)。对于包含大量结构模组的大型整合包来说非常有用,能让探索更具挑战性/减少重复感。

稀疏结构

一个简单且可配置的模组,能让所有结构(包括数据包和模组添加的结构)变得更分散(或更密集!),从而使它们更稀有或更容易找到。在包含大量结构模组的大型整合包中,此模组非常有用,可鼓励探索并使游戏体验更具挑战性或更平衡。

注意:此模组不会改变矿石/晶洞或其他此类特征的生成,并且对地形和树木的修改非常轻微(不足以对大多数玩家造成问题)。

⁉️ 支持

有关于模组的问题?你可以加入我的新 Discord 服务器:discord.gg/cTY4ME6Bkn!

🖼️ 示例

同一种子下两个世界的对比,左侧世界显示女巫小屋和森林府邸(未安装模组),右侧世界显示相同地形但无这些结构

在模组环境中:

对比截图一,显示海洋中同时出现许多(可能太多了)结构,因为安装了大量结构模组。 对比截图二,显示同一世界(种子)的同一坐标处结构显著减少。 图片中涉及的结构模组:Tidal towns、Explorify、所有Yung的模组、Just Another Structure Pack、MVS、Explorations、Towns and Towers、Dungeons and Taverns……

 

🤓 功能

  • 可配置:你可以更改所有独立结构的稀有度,甚至包括模组和数据包中的结构。
  • MC-177381 修复:修复了 /locate 返回玩家与结构之间不准确距离的漏洞。
  • 转储结构集:你可以使用 /dumpstructuresets 命令将所有结构集以配置所需的正确格式转储到文件中。
  • 无分离限制:在原版中,结构之间的分离限制为4096区块(65000方块)。此模组移除了此限制,允许结构更加分散(如果你出于任何原因需要结构如此稀有的话)。
  • 禁用结构:你可以通过将结构的散布系数设为 0 来禁用它们。
  • 改进的结构散布:通过使用基于结构ID的自定义盐值,此模组避免了结构聚集。这对于将盐值保留为 0 或其他许多结构使用的默认值的模组尤其有用。

🛠️ 配置

配置文件位于游戏实例的 config 文件夹中,文件名为 sparsestructures.json5。它包含以下选项:

  • spreadFactor:结构间距和间隔的乘数系数。默认值为 2,意味着结构将会稀有两倍。如果你希望结构更常见,可以将其设置为 0.5 等。 你可以使用系数 0 来禁用结构。
    • ⚠️ 警告:极低的值(如 0.01)会显著降低世界生成速度。
  • idBasedSalt:一个布尔值,指示用于生成所有结构的盐值是否应基于结构ID。这旨在避免结构聚集,因为某些模组将盐值保留为0。默认值为 true。
  • customSpreadFactors:针对特定结构的自定义散布系数列表。默认示例使府邸稀有两倍(当全局 spreadFactor 为2时无效)。如果你想更改某个结构的散布系数,可以在此列表中添加一个条目。每个条目是一个包含两个字段的JSON对象:name(结构的名称)和 spreadFactor(结构的散布系数)。示例如下:
{
    "name": "minecraft:mansion",
    "spreadFactor": 2
}
// 更多详细信息可在配置文件中找到

提示:你可以使用自定义命令 /dumpstructuresets 将所有结构集以正确的格式转储到文件中。

目前(v2.0),你需要重启游戏才能重新加载配置。此行为在未来可能会改变。

⚠️ 如果你正在使用“Alex的洞穴”模组,请将该模组中的结构系数设置为1,以避免出现问题。更多信息请参见 \\\[#47\\\](https://github.com/MaxenceDC/sparsestructures/issues/47)。

📜 依赖项

Fabric API(如果你使用 Fabric,或使用 Quilt 的对应版本)

⏱️ 未来更新

  • 世界特定配置
  • 在配置中支持结构标签
  • 能够自定义结构的生物群系限制
  • 结构互相回避选项
  • 如果你有任何建议,请在此项目的仓库中提交 issue!
  • 添加配置(已在 v2.0 中添加)
  • 解决 /locate 命令与禁用结构的问题(仅限1.20.X)(已在 v3.0 中添加)
  • 禁止特定结构生成(已在 v3.0 中添加)
  • 支持基于频率的结构生成(已在 v3.0 中添加)

🐛 已知问题

  • 尝试在1.20.X版本上定位一个被禁用的结构会导致内部服务器卡死(重启即可解决)。此问题在1.21.X版本上不会发生。
  • 与 Cyanide 不兼容

©️ 鸣谢

图标使用 Gimp 制作,使用了 Twemoji、FiraCode 以及 jaredlll08 的 Multiloader Template 测试协助:kshrubb