Botanic Horizons
[!INFO] Git Commit:
45f458e| Updated: 2026-09-28
Botania 的 GTNH 自动化附属模组,modid 为 botanichorizons(全小写、无连字符)。
它把 Botania 的魔力池、炼金台、注魔台、符文祭坛与精灵传送门改造成可自动化的多方块结构,
并附带 13 个跨模组配方补丁。
[!WARNING] 命名与定位 不是 Variable-Horizons 那类「变体框架」。 本 mod 确实自带一套多方块框架(
util/multiblock/,9 个类), 但那是自研的、与 Variable-Horizons 无任何代码关系的实现——dependencies.gradle中没有 Variable-Horizons。 名字里的 “horizons” 取自 GTNH 整合包前缀(New Horizons),mcmod.info的描述是 “Expert-style recipes for use with GTNewHorizons”。
依赖关系(实测 dependencies.gradle)
| 依赖 | 作用域 | 实际作用 |
|---|---|---|
| Botania | api |
硬依赖,魔力池 / 词典 / 方块来源 |
| GregTech | api |
Mods 枚举 + GT5 配方与机器 |
| Thaumcraft | api |
自定义 Aspect 研究 |
| StructureLib | api |
全息投影与多方块还原 |
| Avaritia | api |
配方补丁目标 |
| NotEnoughItems | compileOnly |
NEI 处理器 id 常量 |
| Chisel | compileOnly |
凿石变体补丁 |
| Baubles-Expanded | runtimeOnly |
仅运行时需要 |
[!NOTE]
mcmod.info的依赖串不可信 它声明了Baubles/witchery/BiomesOPlenty/dreamcraft, 但这些都不在dependencies.gradle里,属历史遗留。 真实的运行时依赖以上表为准。
内容概览
本 mod 只有 4 个方块和 5 件物品,且全部条件注册:
3 把基础魔力扳手挂在 Mods.GregTech.isModLoaded() 下,
2 把拆解扳手挂在 Mods.StructureLib.isModLoaded() 下。条件不满足时字段为 null。
多方块只有 4 个:3 个共用同一张模板的魔力池变体(5×3×7), 加上精灵传送门(7×6×7)。全部仅支持水平 4 向旋转,不支持上下翻转。 尺寸、控制器位置与旋转规则见 Multiblocks。
源码:/Users/evlos/a/mirror/Botanic-horizons/
关系登记:见 data/relation.md(全局 Wiki 分类映射表)
模组核心
- ClientProxy - 客户端 proxy:注册扳手自定义渲染器
- ForgeMod - 模组主类:modid、加载阶段与依赖声明
- IProxy - 客户端/服务端 proxy 接口
- ServerProxy - 服务端 proxy(空实现)
方块与控制器
- BHBlocks - 4 个方块 + 4 个 TileEntity 的注册入口
- BlockAdvancedAlchemyPool - 自动化炼金池控制器方块
- BlockAdvancedAlfPortal - 自动化精灵传送门控制器方块
- BlockAdvancedConjurationPool - 自动化召唤池控制器方块
- BlockAdvancedCraftingPool - 自动化注魔池控制器方块
- BlockModContainer - 抽象方块基类,统一以 ItemModBlock 作为 ItemForm 注册
物品
- BHItems - 5 件扳手,其中 3 件受 GregTech 门控、2 件受 StructureLib 门控
- ItemDisassemblyWrench - 拆解扳手:整体拆除已建成的多方块并返还材料
- ItemManaWrench - 魔力扳手基类:按等级决定可拆卸的多方块
- ItemModBlock - 所有本模组方块的通用 ItemForm
- ItemSelectiveWrench - 选择性扳手:拆解多方块并保留指定组件
- ItemSuperchargedWrench - 满灵扳手抽象基类(不是可直接实例化的物品)
方块实体
- AutomationTileEntity - 自动化基类:库存缓冲、定时推进与多方块联动
- SimpleAutomationTileEntity - 精简版自动化基类
- TileAdvancedAlchemyPool - 自动化炼金池 TileEntity
- TileAdvancedAlfPortal - 自动化精灵传送门 TileEntity
- TileAdvancedConjurationPool - 自动化召唤池 TileEntity
- TileAdvancedCraftingPool - 自动化注魔池 TileEntity
- TileAdvancedManaPool - 自动化魔力池的公共基类
多方块框架
- BasicBlockCheck - 仅比对方块类型的判定器(忽略 meta)
- IMultiblockErrorLocation - 结构校验失败位置的描述接口
- MetaBlockCheck - 方块 + meta 双比对判定器
- MultiblockBuilder - 多方块模板构建器:字符 → 判定器绑定,再展开为绝对偏移
- MultiblockCheck - 单个方块位判定接口
- MultiblockHelper - 多方块结构校验器:按朝向逐格比对
- MultiblockStructure - 结构中单个方块位的描述记录
- Multiblocks - 全部 4 个多方块的结构定义:3 个魔力池变体 + 1 个精灵传送门
- UnloadedBlockException - 结构位所在区块未加载
- WrongBlockException - 结构位方块不匹配
StructureLib 全息支持
- DummySaveHandler - 内存世界用的空保存处理器
- HoloContainer - 全息结构容器基类
- HoloExtractor - 全息结构还原器:把投影结构还原为真实方块
- HoloProjectorSupport - 向 StructureLib 全息投影注册本模组多方块
- HoloScanner - 全息结构扫描器
- InMemoryChunkProvider - 内存区块提供器
- InMemoryWorld - 内存世界:结构还原的沙盒
- OrientedHoloContainer - 带朝向的全息结构容器
配方补丁
- AlfheimPatches - 为精灵贸易(Elven Trade)追加 GTNH 配方
- ApothecaryPatches - 为 Botania 炼金台追加配方
- AvaritiaPatches - 向 Avaritia 追加配方
- BreweryPatches - 为 Alexandriod 的 Brewery 追加酒配方
- ChiselPatches - 为 Chisel 补充本模组材料变体
- CraftingPatches - 追加工作台配方;含 NewHorizonsCoreMod 判据(
:303) - DaisyPatches - 为 Daisy 追加配方
- GregtechPatches - 为 GregTech 机器追加 Botania 主题配方
- ManaInfusionPatches - 为魔力注魔追加配方
- OredictPatches - 注册本模组相关的矿物词典条目
- RunicAltarPatches - 为 Botania 符文祭坛追加配方
- ThaumcraftAspects - 自定义神秘学要素(Aspect)定义
- ThaumcraftPatches - 为 Thaumcraft 追加配方
- TodoPatches - 空壳类:仅含一大段被注释掉的 Botania 语言文件转储
词典
- BHLexiconEntry - Botania 词典条目实现
- BHLexicon - 词典页面注册入口
- BHRecipes - 词典中展示的配方定义
通用工具
- BlockBreakHelper - 统一 IC2
IWrenchable扳手路径与手持工具路径: - BlockPos - 行数 13 的极简坐标载体,用于多方块与结构运算中传递位置,避免装箱
BlockPos带来的开销。 - ChargeState - 共 5 个枚举常量。
ChargeState.java:47特殊识别 - Constants - 151 行常量类,包含 20 组 meta 映射(魔力池、扩散器、魔力材料、
- Facing2D - 仅水平 4 向的朝向枚举,驱动本模组全部多方块旋转
- IBlockTooltip - 行数 12。由 4 个控制器方块实现(连同
IWandHUD/IWandable/ILexiconable), - InventoryHelper - 141 行。为 AutomationTileEntity 等
- NonFuzzyInfusionRecipe - 78 行。Botania 注魔默认对输入做模糊匹配;
- OreDict - 46 行。本 mod 的 ore dict 条目注册入口,
- ResearchBuilder - 183 行。链式构建神秘学研究记录(前置、图标、隐藏前置、扭曲度),
- SparkHelper - 27 行。对 Botania Spark 实体(
spark/sparkUpgrade0..3)的轻量操作封装。
NEI
- NEIConfig - NEI 处理器前缀与分类常量
客户端渲染
- WrenchItemRenderer - 扳手的自定义物品渲染器