MapWorld
基本信息
| 属性 | 值 |
|---|---|
| 类名 | sedridor.forgeamidst.MapWorld |
| 文件 | src/main/java/sedridor/forgeamidst/MapWorld.java |
| 行数 | 29 |
| 继承 | extends net.minecraft.world.WorldServer |
| 启用版本 | Minecraft 1.7.10 |
功能
伪世界(dummy world) —— 让 Amidst 在不生成真实区块的前提下 调用原版地形生成器取得生物群系数据。
这是整个 mod 的核心技巧:借 WorldServer 的 GenLayer 管线,
但用空实现吞掉一切存档与写盘。
构造器
public MapWorld(MinecraftServer server, long seed, WorldType worldType,
WorldSettings par5WorldSettings) {
super(server, new MapWorldSaveHandler(), "ForgeAmidst", 0, par5WorldSettings,
server.theProfiler);
ForgeAmidst.setWorld((World) this);
ForgeAmidst.biomeGen = ForgeAmidst.getInstance().getGenLayers(0);
ForgeAmidst.biomeIndexLayer = ForgeAmidst.getInstance().getGenLayers(1);
}
| 参数 | 值 |
|---|---|
saveHandler |
MapWorldSaveHandler(见下) |
| 世界名 | "ForgeAmidst"(硬编码) |
dimensionId |
0(固定主世界) |
⚠️ 构造后立刻把 this 写回 ForgeAmidst 的静态 world,
并取两层 GenLayer:getGenLayers(0) → biomeGen、
getGenLayers(1) → biomeIndexLayer。
⚠️ 构造器里有 System.out.println(非 logger)打印
"MapWorld: " + seed + " " + worldType.getWorldTypeName()。
这是反编译残留风格的调试输出(见 README
「Clean up decompiled artifacts (WIP)」)。
createChunkProvider()
返回 new MapWorldChunkProvider(this, ichunkloader, chunkGenerator):
| 组件 | 来源 |
|---|---|
IChunkLoader |
this.saveHandler.getChunkLoader(this.provider) |
IChunkProvider |
this.provider.createChunkGenerator() |
即读取器用自己造的空存档处理,生成器用真实地形生成管线。
配套的「空实现」策略
| 类 | 作用 | 空实现内容 |
|---|---|---|
| MapWorldChunkProvider | 区块提供 | safeSaveExtraChunkData / safeSaveChunk / populate 全空;saveChunks 恒返回 true |
| MapWorldSaveHandler | 存档处理 | loadWorldInfo 返回 null;4 个 save/get 方法全空 |
⚠️ MapWorldSaveHandler 的存档目录是
new File(ForgeAmidst.getDataDir(), "config/forgeamidst"),
世界子目录名 "MAPWORLD",第三参 false(不压缩)。
⚠️ 拼上 "config/forgeamidst" 后实际路径为
<游戏根>/config/forgeamidst/MAPWORLD ——
而 ForgeAmidst 的 mcDataDir 取的是游戏根目录(config 的父级)。
⚠️ 两个变体
| 类 | 何时成为主世界 |
|---|---|
MapWorld(本类) |
总是 —— 构造即 setWorld(this) |
| MapWorldRTG | 仅当 worldType 不是 "RTG" 或 getWorld() == null |
即 RTG 模式下两者会竞争 ForgeAmidst.world 的归属。
关联
- MapWorldRTG - RTG 变体
- MapWorldChunkProvider - 空实现区块提供
- MapWorldSaveHandler - 空实现存档
- ForgeAmidst - 静态
world/biomeGen宿主 - Transformer - 调用
MapWorldRTG.updateGenLayers