Variable Horizons
[!INFO] Git Commit:
7eb4eec| Updated: 2026-09-26
Variable Horizons(modid: variablehorizons)是 GTNH 的变体(Variant)框架 mod。它自己不添加任何内容,而是提供 21 个可开关的「变体」,用来改写世界生成、配方、维度、难度与任务奖励等整合包规则。
作者自述为 “The variants handler mod for GTNH”。
不是什么
⚠️ 它与「可变视距 / 渲染距离」毫无关系。mod 名里的 “Horizons” 指「换天」——即切换世界形态与规则,而非调整客户端渲染距离。源码中没有任何渲染距离、视距、frame 设置相关代码。
核心概念
一切建立在 variants/VariantNames 这个 21 项枚举上:
| 分类 | 数量 |
|---|---|
| 变体总数 | 21 |
组合变体(compositionVariant = true) |
4:NORMAL、GARDEN_OF_GRIND、SKYBLOCK、DIMLOCKED |
| 子变体 / 修正项 | 17 |
其中有 VariantLoader 实现类 |
12 |
| 仅靠 flag + mixin 生效 | 9 |
变体可自由组合,组合变体之间互斥,且组合会自动继承子变体的互斥项。
实现方式
| 手段 | 规模 |
|---|---|
| GTNHLibMixins | 19 个 MixinBuilder(16 EARLY + 3 LATE),覆盖 23 个 mixin 类 |
VariantLoader 实现类 |
12 个,在运行时改配置/发配方/调 GT API |
| 服务端命令 | 至多 4 个:/variants、/island、/alterrecipetimes、/demoninvasionblacklist |
| 配置 | 26 个字段(GeneralConfig 19 + MobConfig 5 + GogConfig 1),经 GTNHLib @Config 注册 |
被 mixin 改写的第三方类包括 Realistic World Gen(ChunkGeneratorRealistic)、Botania(SubTileOrechidIgnem)、Galacticraft(WorldUtil、SpaceMiningRecipes)。
模组概览
| 属性 | 值 |
|---|---|
| modid | variablehorizons |
| 显示名 | Variable Horizons |
@Mod 主类 |
com.LazyFlesh.variablehorizons.VariableHorizons |
| 包路径 | com.LazyFlesh.variablehorizons |
| 版本 | Tags.VERSION(构建期生成) |
| Minecraft | 1.7.10(acceptedMinecraftVersions = "[1.7.10]") |
| Forge | 10.13.4.1614 |
| 加载顺序 | dependencies = "after:dreamcraft" |
| 支持语言 | 仅 en_US(161 行) |
| 内容总量 | 0 方块 / 0 物品 / 0 实体 / 0 维度 / 0 附魔 / 0 成就 |
| 主配置 | GeneralConfig,带 @Config.RequiresMcRestart |
依赖
| 依赖 | 性质 | 收录情况 |
|---|---|---|
| DreamCraft | @Mod(dependencies = "after:dreamcraft") 软顺序依赖,但 dependencies.gradle 中无此条目 |
未收录,见下 |
GT5-Unofficial:5.09.54.118 |
implementation,直接调用 GTMod/GTRecipe/Worldgen/WirelessNetworkManager/Materials |
本 wiki 已收录 gregtech |
BetterQuesting:3.8.79 |
api,transitive = true |
本 wiki 已收录 betterquesting |
GTNHLib:0.11.41 |
implementation,提供 @Config 与 gtnhmixins 框架 |
本 wiki 已收录 |
Botania:1.13.33 |
implementation,改写 SubTileOrechidIgnem |
本 wiki 已收录 |
Realistic-World-Gen:alpha-1.5.2 |
implementation,transitive = false |
未收录 |
BloodMagic:1.9.12 |
implementation |
本 wiki 已收录 bloodmagic |
Infernal-Mobs:1.10.7 |
api,transitive = false |
未收录 |
Random-Things:2.7.11 |
api,transitive = false |
未收录 |
SpecialMobs:3.7.7 |
api,transitive = false |
未收录 |
MagicBees / ForestryMC / twilightforest |
implementation |
未收录 |
NotEnoughItems:2.8.125 |
runtimeOnlyNonPublishable dev-only |
见下 |
关于 DreamCraft
@Mod 声明了 after:dreamcraft,但 build 依赖中没有 DreamCraft。after: 只是加载顺序软依赖,不要求其存在,因此这不构成硬依赖。不过该 mod 深度直接引用 GregTech API,实际只能在 GTNH 整合包内运行。DreamCraft 未收录于本 wiki,本分类不代为复述其内容。
关于 NEI
NotEnoughItems 声明为 runtimeOnlyNonPublishable(仅开发期运行,不作为 Maven 依赖发布)。本 mod 不提供任何 NEI handler。
已知状态
⚠️ 总开关 GeneralConfig.disableVariants 虽被全部 19 个 MixinBuilder 检查,但 VariantLoader 施加的运行时改动不受它保护——把它设为 true 不能完整关闭本 mod。详见 源码缺陷。
另:21 个变体中,枚举常量名 ALTERED_RECIPE_TIME 的对外 id 是 ALTERED_TIME(唯一一处名 id 不符);ALTERED_EFFICIENCY / CHEAP_MODE / EXPENSIVE_MODE 三项无任何消费方。
条目
- 变体系统 - 21 个枚举、组合与互斥规则(注册真源)
- 世界生成变体 - VOID_WORLD / SUPERFLAT / SKYGRID / MONOBLOCK
- 进度变体 - NO_ROCKET / INFINITE_POWER / CHANCED_RECIPES / CRIMSON_APOCALYPSE 等
- 维度变体 - CUSTOM_DIM_START / DIMLOCKED
- 组合变体 - NORMAL / GARDEN_OF_GRIND / SKYBLOCK / DIMLOCKED
- 虚空岛 - 7 套岛屿模板与 8000 格网格分配
- 选择 GUI - 世界选择界面上的变体勾选界面
- 命令 - 4 个服务端命令与权限等级
- 配置项 - 26 个配置字段及默认值
- Mixin 挂载点 - 19 个 MixinBuilder 与变体的对应关系
- 源码缺陷 - 10 项实测问题清单