Skip to content

[BUG] 新生成下界区块缺少层状结构,地表被填成对应群系的裸方块 #17

Description

@tlipoca-desu

现象

CoreSwap 启用后,下界新生成区块的基岩屋顶(顶部 y≈128)与基岩地板(底部 y≈0)这两层基岩没有生成,而是被填成了该区块对应的普通地形方块(下界岩 / 玄武岩等)。与原版区块交界处出现明显分界:

  • 图1(坐标 (7, 138, -251),y=138 下界顶部):左侧原版区块是一整层黑色基岩屋顶,右侧 CoreSwap 新生成区块的该位置没有基岩层,而是下界岩/玄武岩地形,两者交界清晰。
  • 图2(坐标 (-18, 6, -250),下界底部):左侧原版区块是一整层黑色基岩地板,CoreSwap 新生成区块的该位置没有基岩,而是普通地形方块

简单说:下界本应"上下各有一层基岩封层"(基岩顶 + 基岩底),CoreSwap 新生成区块里这两层基岩都被普通地形方块取代。从日志看,这是 CoreSwap 在下界绕过了 vanilla 的表面(buildSurface)处理导致的,不是用户环境问题(主世界地形生成正常,仅下界/末地受影响)。

游戏环境

Minecraft 1.20.1
Fabric Loader 0.19.3
Java 21.0.6.0 LTS
Windows 10 64bit (19041.6456)
AMD Ryzen 5 9600X (6C12T)
NVIDIA GeForce RTX 5060 Ti 16G
种子:4565066326920384869

Mod列表

coreswap 1.20.1-1.0.18
sodium 0.5.13+mc1.20.1
iris 1.7.6+mc1.20.1
fabric-api 0.92.11+1.20.1
modmenu 7.2.2
wthit 8.21.1
xaerominimap 26.4.2
xaeroworldmap 1.45.0
replaymod 1.20.1-2.6.23
minihud 0.27.1
malilib 0.16.3
badpackets 0.4.3

重现步骤

  1. 不带 CoreSwap(原版 Fabric 配置)生成世界,进入下界
  2. 分别飞到 y=128 以上(下界基岩屋顶上方)与 下界底部(y≈0 附近,基岩地板处),使该处地形被生成,保存退出。
  3. mods/ 里加上 coreswap-1.20.1-1.0.18.jar,重新启动。
  4. 确认日志出现 [BenchMod] CoreSwap replace mode: C++ worldgen active
  5. 重进该存档,向下界未加载方向飞行约 32 个区块左右的距离(视距32)。
  6. 原版区块与 CoreSwap 新生成区块的交界处停下,观察基岩屋顶 / 基岩地板(见附图 1、2)。

日志

原始日志见:https://mclo.gs/J2XHRym

[19:56:58] [Worker-Main-9/INFO]: [STDOUT]: [Mixin] buildSurface skipped chunk(-17,4)
[19:56:58] [Worker-Main-5/INFO]: [STDOUT]: [Mixin] buildSurface skipped chunk(-17,2)
[19:56:58] [Worker-Main-5/INFO]: [STDOUT]: [Mixin] buildSurface skipped chunk(-17,1)
[19:56:58] [Worker-Main-11/INFO]: [STDOUT]: [Mixin] buildSurface skipped chunk(-17,5)
...(约 29 行,coord 集中在 chunk(-17,z),即下界负坐标区)

补充分析(基于日志的推断,由Agent协助分析)

  • 这些负坐标 chunk 出现 buildSurface skipped,但没有对应的 populateNoise intercepted(主世界才有 populateNoise intercepted chunk(-8,-16))。这说明:主世界的地形生成被 mod 接管(所以打 intercepted),而下界的地形生成仍是 vanilla(所以不打 intercepted),但下界的表面处理(buildSurface)被跳过了
  • 下界的基岩屋顶(y≈128)与基岩地板(y≈0)恰好由 buildSurface(表面规则)负责铺设。跳过它之后,这两层基岩没有生成,露出了下方该区块对应的普通地形方块
  • 建议:让 CoreSwap 在非主世界维度(下界/末地)回退 vanilla 的表面处理,即仅在主世界跳过/接管 buildSurface,其余维度照常执行原版表面规则。

关于末地的推测:基于同一机制推断,末地(同为非主世界维度)的 buildSurface 表面规则很可能同样被跳过,导致悬浮岛屿缺少正常末地石表面层。但因后续加载 CoreSwap 时进入世界会反复崩溃 #16末地暂无法实测验证,此处仅作推测,需确认。

附图

Image Image

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions