Hardcore Ender Expansion
[!INFO] Git Commit:
abfc964| Updated: 2026-10-02
Hardcore Ender Expansion(HEE)由 chylex 编写,是 GTNH 平台上覆盖原版末地的大型内容 mod。它不新增维度,而是把维度 ID 1 的末地整体重做:末影龙的死亡次数会被持久化并加进世界种子(world/WorldProviderHardcoreEnd.java:18),每多杀一次龙,末地地形、塔与生态岛的位置全部改变。核心内容是 49 个方块、44 个物品、48 个自建实体 + 2 个原版实体替换(合计 50 个实体注册)、1 个被完全替换的末影人种群、22 条诅咒配方与 2 个创造标签。
它带 1 个 coremod(HEECore)、1 个 early mixin(替换原版龙蛋方块)、7 类可强化物品系统、21 种护符 / 6 种符文、14 个 IMC 扩展点,以及末地专属的「能量」经济(区块按距离回充,抽取能量把物品换成精华)。
身份字符串
以下字符串互不相同,是本 mod 记录在案的全部身份标识:
| 身份 | 值 | 来源 |
|---|---|---|
| modid | HardcoreEnderExpansion |
HardcoreEnderExpansion.java:61(@Mod(modid = …));gradle.properties:10 modId = HardcoreEnderExpansion |
| 分类名 / 目录名 | hardcore-ender-expansion |
本 wiki 分类名,驼峰转小写(relation.md 行) |
| 目录名(源码包) | chylex.hee |
gradle.properties:14 modGroup = chylex.hee |
| GUI 工厂 | chylex.hee.gui.core.ModGuiFactory |
HardcoreEnderExpansion.java:65 的 @Mod(guiFactory = …) |
| @Mod 显示名 | Hardcore Ender Expansion |
HardcoreEnderExpansion.java:62;gradle.properties:6 modName = Hardcore Ender Expansion |
| FML 容器 modid(coremod 类) | chylex.hee.HEECore |
gradle.properties:131 coreModClass = HEECore;类上 @IFMLLoadingPlugin.MCVersion("1.7.10")(HEECore.java:12-13)。coremod 本身无自己的 modid,getModContainerClass() 与 getSetupClass() 都返回 null(HEECore.java:31-38) |
| 资源域 | hardcoreenderexpansion(全小写、无下划线) |
src/main/resources/assets/hardcoreenderexpansion/ |
| 注册域 | 方块走 GameRegistry.registerBlock 3 参重载 → 域取自当前 modid,即 HardcoreEnderExpansion;物品与 TileEntity 显式传 "HardcoreEnderExpansion"(system/util/GameRegistryUtil.java:20-30) |
同左 |
| 网络频道名 | hee |
packets/PacketPipeline.java:45 |
| 混合配置名 | mixins.HardcoreEnderExpansion.json / mixins.HardcoreEnderExpansion.early.json |
src/main/resources/ |
| Access Transformer 文件 | hee_at.cfg |
gradle.properties:107 accessTransformersFile = hee_at.cfg |
| jar 名 | customArchiveBaseName 被注释掉,jar 名回落到 modId,即 HardcoreEnderExpansion-1.12.28-GTNH.jar |
gradle.properties:199 # customArchiveBaseName =(注释掉) |
| 结构 IO 前缀 | hardcoreenderdragon_EndTower / …_EndTowerC / hardcoreenderdragon_EndIsland / …_EndIslandC(注意 hardcoreenderdragon 无 e) |
world/DimensionOverride.java:36-39 |
| 创造标签显示名 | Hardcore Ender Expansion / Hardcore Ender Expansion - Charms(愚人节时变 Hardcore Bacon Expansion) |
system/creativetab/ModCreativeTab.java:34-36 |
@Mod 类数量 = 1:chylex.hee.HardcoreEnderExpansion(HardcoreEnderExpansion.java:60-66;grep -rc '@Mod(' 在全树只命中这 1 个文件)。@Mod 另带 useMetadata = true(:64)与 guiFactory = "chylex.hee.gui.core.ModGuiFactory"(:65)。HEECore 不是 @Mod,它是 IFMLLoadingPlugin。
依赖
| 层级 | 模组 | modid | 声明位置 |
|---|---|---|---|
| 硬依赖(唯一) | GTNHLib | gtnhlib(小写) |
@Mod(dependencies = "required-after:gtnhlib@[0.5.22,)")(HardcoreEnderExpansion.java:66)+ dependencies.gradle:4 implementation 'com.github.GTNewHorizons:GTNHLib:0.11.48:dev' |
| 编译期(非 FML 硬依赖) | NotEnoughItems | NotEnoughItems |
dependencies.gradle:5 implementation。@Mod 依赖串里没有它 |
| 软依赖 | Baubles-Expanded | Baubles|Expanded |
dependencies.gradle:7 compileOnly + 处理器(坐标名 ≠ modid) |
| 软依赖 | Thaumcraft | Thaumcraft |
dependencies.gradle:8 compileOnly + 处理器 |
| 软依赖 | Mobs-Info | mobsinfo |
dependencies.gradle:9 compileOnly + 4 处 @Optional.Interface(坐标名 ≠ modid) |
| 软依赖 | Baubles | Baubles |
8 处 @Optional.Interface(仅 ItemCharmPouch 用) |
| 纯运行时(无 gradle 声明) | MineFactory Reloaded | MineFactoryReloaded |
只在 handlers/MineFactoryReloadedIntegration.java:19-21 用 Class.forName("powercrystals.minefactoryreloaded.MFRRegistry") 反射接入 |
| 引用但非依赖 | Minecraft | minecraft |
mechanics/misc/StardustDecomposition.java:93、:111、:128 |
版本
MC 1.7.10 / Forge 10.13.4.1614。三种版本门控形式的实际结果:
- 形式 ①
gradle.properties:没有modVersion键(GTNH 约定插件从 git tag 派生),但含minecraftVersion = 1.7.10(:24)与forgeVersion = 10.13.4.1614(:27)—— 这是本 mod 采用的 MC 版本证据 - 形式 ②
build.gradle:只有id 'com.gtnewhorizons.gtnhconvention',无版本字符串 - 形式 ③
Tags类:源码树中不存在(generateGradleTokenClass = chylex.hee.Tags,gradle.properties:77+gradleTokenVersion = VERSION,:80,构建期生成),但@Mod(version = Tags.VERSION)(HardcoreEnderExpansion.java:63)证明接线正确 - 旁证:
mcmod.info:6的"mcversion": "${minecraftVersion}"指向同一键;HEECore.java:12的@IFMLLoadingPlugin.MCVersion("1.7.10")
本仓库不是反编译 jar,是带完整 gradle 构建的源码树(gradlew / settings.gradle / dependencies.gradle / gradle.properties 齐备),因此适用简报检查 #1 的正常路径,不属于 (A)/(B) 两种例外。
为什么不用 git describe:git describe --tags 在 HEAD 上给出 1.12.28-GTNH(git tag --points-at HEAD 同值,已用 git cat-file -t abfc9640f622389a81ca6e1c6b6acce928c0f44b → commit 验证为合法提交对象)。这是模组自身版本号,不是 Minecraft 版本号 —— 简报列举的 computronics 1.9.10-GTNH、openblocks 1.12.22-GTNH、worldedit-gtnh v0.0.10 等同类陷阱都发生在 1.7.10 源码树上,1.12.28 同样如此。故 MC 版本只依据 gradle.properties 的 minecraftVersion / forgeVersion。
注册内容(活注册)
| 类别 | 数量 | 证据 |
|---|---|---|
| 方块 | 49 | init/BlockList.java:182-406;grep -c setBlockName( → 49 交叉验证 |
| 物品 | 44 | init/ItemList.java:130-308;grep -c setUnlocalizedName( → 46 − 2 条注释行 = 44 交叉验证 |
| TileEntity | 13 | init/BlockList.java:500-515(registerTileEntities()) |
自建实体(GameRegistryUtil.registerEntity) |
48 | init/EntityList.java:60-134(47 个单行 + 2 个 GameRegistryUtil / .registerEntity 跨行调用,L95、L105) |
原版实体替换(replaceVanillaEntity) |
2 | init/EntityList.java:57-58:原版末影人(ID 58)与末影水晶(ID 200) |
| 实体合计 | 50 | 48 + 2 |
| 实际配方 | 71 | mechanics/RecipeList.java,见合成配方总表 |
| 怪物 / Boss | 14 / 4 | init/EntityList.java:64-77 / :60-63 |
| 成就 / 挑战 | 24 / 3 | system/achievements/AchievementManager.java |
| 网络包 | 25 | packets/client/ 20 + packets/server/ 5 |
| 集成处理器 | 4 | system/integration/handlers/ |
| IMC 消息 key | 14 | api/message/handlers/ 6 个类 |
| 物品字典名 | 7 | BlockList.java:491-497(6 条 oreHee*/blockHeeEndium)+ ItemList.java:364(ingotHeeEndium) |
| 液体 | 1 | BlockEnderGoo.fluid,BlockList.java:180 |
| 结构生成器 | 2 | MapGenIsland / MapGenTower;另 TempleGenerator 为末影龙召唤时的程序化建造器 |
| 粒子/世界生成特性 | 6 | world/feature/WorldGen*.java,全部在 BiomeDecoratorHardcoreEnd.java:47-52 实例化 |
| 创造标签 | 2 | tabMain / tabCharms |
| 维度 | 0 | 不新增维度,覆盖维度 ID 1 |
未注册内容(不算缺陷 —— 有 intent evidence)
world/structure/sanctuary/ 整棵子树 8 个文件(BlockSanctuaryBrain / EntityMobSanctuaryOverseer / TileEntitySanctuaryBrain / ComponentSanctuary / MapGenSanctuary / StructureSanctuary / SanctuaryConquerPointGen / SanctuaryMazeGen)完全没有接入。证据:
init/BlockList.java:402与init/EntityList.java:78-79的注册调用被// TODO SANCTUARY注释掉world/DimensionOverride.java:40-41的两行MapGenStructureIO注册被// TODO SANCTUARY注释掉- 全仓库非注释引用扫描显示这 8 个类只在彼此之间互相引用,外部零引用
Intent evidence = 源码中 6 处 // TODO SANCTUARY 注释 + world/biome/BiomeDecoratorHardcoreEnd.java:36 的块注释仍把 Insidious Sanctuary | linear+− | 3200–8500–36000 列在规格表里。同理,ItemList.java:215、:285-286 的 sacred_wand / sacred_wand_cores 与 BlockList.java:261 的 sacred_stone 也是同一批未完成内容。
EntityProjectileSacredWand(init/EntityList.java:106)已注册,但其唯一来源 ItemSacredWand 未注册,故该投射物在正常游戏流程中不可获得。
方块列表
- 建筑方块 - 19 个建材方块:黑曜石系列、破坏方砖家族、实验室废墟、诡异树
- 矿石 - 6 种末地矿石,含 16 meta 星尘矿石与 6 条物品字典
- 功能方块 - 9 个带 TileEntity 的机器方块与 7 类强化系统
- 技术方块 - 17 个不可破坏/内部方块,含能量簇与末影传送门
物品列表
机制列表
- 诅咒系统 - 11 种诅咒的完整数值与 22 条配方
- 能量系统 - 区块能量模型、4 档能量簇、32 项定价表
- 精华祭坛 - 4 种精华、10 个符文物品、3 条转化配方
- 虚空箱与运输信标 - 玩家私有 27 格容器与 960 格传送半径
实体列表
世界列表
- 末地维度覆盖 - 维度 ID 1 的完整接管流程与完整性校验
- 生态岛 - 3 种生态、7 种内容变体、9 种随机偏差
- 结构 - 2 个 MapGen、5 条概率曲线、8 层龙巢神殿
- 世界生成 - 6 个生成器的逐项概率与数量参数
API 列表
- IMC API - 14 个消息 key、12 种元素值类型、冻结注册表
集成列表
- 第三方模组集成 - 4 个活注册处理器与完整的硬/软/运行时依赖分层
配置列表
- 配置项 - 3 个配置节 19 个配置项,及其首次加载门控与配置迁移
系统列表
配方列表
- 合成配方总表 - 71 条配方的逐条列表与循环展开算法