世界生成变体
改写区块生成的 4 个子变体,全部通过 Phase.EARLY mixin 实现,需要重启游戏。
VOID_WORLD
Void World —— 关闭所有地形生成,把所有维度(含出生维度)变成纯虚空。
对应 4 个 early mixin builder(条件均为 VOID_WORLD 或 VOID_ISLAND,并检查 !disableVariants):
| MixinBuilder | 挂载 |
|---|---|
DISABLE_CHUNK_TERRAIN_GENERATION |
MixinChunkProviderServer_DisableTerrain |
DISABLE_CHUNK_TERRAIN_GENERATION_ENDLESS_IDS |
MixinChunkProviderServer_DisableTerrain_EndlessIDs |
DISABLE_WORLD_TYPE_CHUNK_POPULATION |
MixinChunkProviderServer_DisablePopulation、AccessorChunkProviderGenerate |
DISABLE_MODDED_CHUNK_POPULATION |
MixinChunkProviderServer_DisableModGeneration |
后两个针对的是模组生成物(如 Natura 云层)与与地形绑定的结构/矿脉。builder 条件同时列出 SKYGRID 与 SUPERFLAT,即这三个变体在关闭生成物这一点上共用逻辑。
*_EndlessIDs 变体是因为该 mod 有专门的兼容判定,EndlessIDs 装与不装要挂不同的 mixin。
SUPERFLAT
Superflat —— 把世界与所有维度强制为超平坦。互斥 VOID_WORLD 与 VOID_ISLAND。
| MixinBuilder | 挂载 |
|---|---|
SUPERFLAT_CHUNK_TERRAIN_GENERATION |
MixinChunkProviderServer_ForceSuperflatTerrain |
SUPERFLAT_CHUNK_TERRAIN_GENERATION_ENDLESS_IDS |
MixinChunkProviderServer_ForceSuperflatTerrain_EndlessIDs |
两个配套配置项(均默认 false):
allowSuperflatPopulation—— 是否允许超平坦上生成结构与植被(村庄始终生成)allowSuperflatBiomes—— 超平坦主世界是否生成平原以外的生物群系
MixinEntitySlime_ExtendedSpawnRange(builder INCREASE_SLIME_SPAWNING_HEIGHT)把史莱姆生成高度提升到 y = 80。
SKYGRID
Skygrid —— 把世界与所有维度强制为稀疏网格。互斥 VOID_WORLD、VOID_ISLAND、SUPERFLAT。
| MixinBuilder | 挂载 |
|---|---|
SKYGRID_CHUNK_TERRAIN_GENERATION |
MixinChunkProviderServer_ForceSkygridTerrain |
SKYGRID_CHUNK_TERRAIN_GENERATION_ENDLESS_IDS |
MixinChunkProviderServer_ForceSkygridTerrain_EndlessIDs |
由 3 个配置项控制:
| 配置 | 默认值 | 说明 |
|---|---|---|
skygridDistance |
3 | 网格方块之间的空气方块数(@RangeInt(min = 0)) |
skygridTEWhitelist |
{ "" } |
允许在网格中生成的 tileentity 白名单,格式 modID:blockname:meta |
skygridBlacklist |
{ "minecraft:command_block:0" } |
禁止生成的方块黑名单,格式同上 |
实现类为 variants/invasive/SkyGrid.java。
MONOBLOCK
Monoblock —— 把区块中所有方块替换为单一类型。互斥无,但被包含于 NO_RECIPE_ADDITIONS 方向相反(MONOBLOCK 的 incompatible 声明为 { NO_RECIPE_ADDITIONS })。
对应 REPLACE_ALL_CHUNK_BLOCKS builder,挂载 MixinChunkProviderServer_ReplaceBlocks 与 MixinChunk_ReplaceGeneratedBlocks(一个改生成器侧,一个改区块落盘侧)。
目标方块由配置 replacementBlock 决定,默认 minecraft:stone:0。
村庄跨生物群系
ALLOW_VILLAGE_GENERATION_IN_ANY_BIOME builder 挂载 MixinMapGenVillage_AllowAnyBiome 与 MixinStructureVillagePieces_AllowAnyBiome,让村庄能在任意生物群系生成(同时改 MapGenVillage 与 StructureVillagePieces)。
RWG 兼容
AccessorChunkGeneratorRealistic 是为 Realistic World Gen 加的 accessor mixin,Mixins 枚举末尾的 coremod 识别列表里含 RWG(null, "RWG", "rwg.world.ChunkGeneratorRealistic")。