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 三项无任何消费方。

条目