永远平原生成

永远平原生成

将世界出生点设置为靠近水域和森林的平坦平原,适合工业开局。

抱歉!由于 CurseForge 的审核流程,部分版本未能正确上传!

上述问题已解决。

但是,由于上传顺序有些混乱, 我们建议使用筛选器来获取您想要的版本。

始终平原出生 (Always Plains Spawn)

一个 Minecraft 模组(Fabric / Forge / NeoForge),将世界出生点重新定位到适合工业游玩的平原生物群系——地势平坦,可选附近有水和森林。

由 MisoPy 维护。

设计假设

APS 是基于原版主世界地形生成而构建的。
默认配置值假设使用原版生物群系布局和高度形状,并针对工业/工厂式开局进行了调优:

  • 平坦的平原(地表高度和局部平坦度过滤器)
  • 短途旅行距离内有水(河流 / 海洋 / 沙滩)
  • 附近有森林以获取早期木材

通过这些默认设置,一个新世界应该会感觉像是一个实用的工业出生点,而不是一次生物群系抽卡。

地形生成模组

大幅改变地形或生物群系的模组(自定义世界生成、大型生物群系改造、非标准高度图等)通常会与这些假设冲突。出生点搜索可能会变慢、失败,或选中不理想的地点。

config/alwaysplainsspawn-common.toml 可以缓解一些不匹配的情况(放宽平坦度要求、取消水/森林需求、提高 max_surface_y、扩大搜索范围)。这仅在世界仍然拥有可辨识的类平原区域时有效。不建议与深度世界生成改造模组强制同时使用。

工作原理

在主世界创建/加载后(每个世界一次),模组仅使用生物群系噪声(搜索期间不生成区块)搜索 minecraft:plains,然后设置世界出生点。

重点:

  • 仅噪声搜索 — 在寻找平原时避免生成区块(快速创建世界 / 首次加入)
  • 内部平原采样 — 减少落在狭窄平原带或森林边缘的情况
  • 工业选址过滤器 — 估算地表 Y 坐标、稀疏平坦度环(拒绝陡峭的河流切割地形)、可选附近的水和森林
  • 出生点区块交由原版处理 — 仅设置出生点坐标;不进行自定义强制加载(与 Ksyxis 等移除器兼容)

注重性能的细节(质量接近严格检查):

  • 平坦度使用稀疏采样(半径及半半径处的四个方向/对角线),而非密集高度网格
  • 生物群系标签使用海平面噪声 Y,而非每次查询都调用 getBaseHeight
  • 水和森林共享一次附近的螺旋搜索(每列一次噪声采样)
  • 胜出候选在最终放置 Y 坐标时不会进行完全重新验证

床 / 重生锚的出生点不变。没有这些时,玩家将使用平原世界出生点。

一个每世界标记(alwaysplainsspawn_relocated)可防止成功后重复运行。

配置

路径:config/alwaysplainsspawn-common.toml(首次启动时创建)

键 含义
search_radius 最大搜索半径(方块)(默认 4092)
search_step 噪声采样间隔(默认 64;越大越快)
algorithm locate 或 spiral(均为仅噪声)
interior_checks 相邻平原采样,用于避免生物群系边缘
max_surface_y 要求估算地表 Y ≤ 此值(默认 65)
require_water_nearby 要求附近有河流/海洋/沙滩(默认 true)
require_forest_nearby 要求附近有森林(默认 true)
nearby_check_radius 水/森林检查的半径(默认 96)
flatness_radius 出生点周围平坦度检查的区域(默认 24)
flatness_max_delta 该区域内最大地表 Y 差值(默认 2)
fallback_to_vanilla 若无匹配则保留原版出生点

生物群系固定为平原;上述选址过滤器可配置。默认值针对原版地形 + 工业便利性。

兼容性

  • 适用于类原版主世界生成(见上文)
  • 服务端逻辑(单机时客户端可选)
  • 混入原版服务器加载 / 重生路径
  • 相近补丁版本共享一个 jar(publish.additionalVersions)

需求

  • Minecraft 1.16.5 ~ 26.1.2(Fabric / Forge / NeoForge — 参见矩阵)
  • Architectury API(所有加载器)
  • 仅 Fabric 需要 Fabric API

版本矩阵(编译目标)

加载器 主要版本
Fabric 1.16.5 … 26.1.2
Forge 1.17.1 … 1.20.1
NeoForge 1.20.4 … 26.1.2

注意事项:

  • 当前 LegacyForge 工具链不支持 Forge 1.16.5
  • NeoForge 覆盖 1.20.2+(通过 1.20.4+ 目标 + 附加版本)

许可证

MIT