CubicChunks1710
[!INFO] Git Commit:
80f1120| Updated: 2026-10-03
Cubic Chunks(CubicChunks1710)是 GTNewHorizons 为 Minecraft 1.7.10 / Forge 10.13.4.1614 维护的 Cubic Chunks 移植版,由 Cardinalstars、DarkShadow44、Recursive Pineapple 维护(src/main/resources/mcmod.info:11)。它把原版"区块"从 2D 升为立方区块:世界在 Y 方向不再受 256 格限制,一个"列"(Column,XZ 16×16)内部可容纳任意多个 16×16×16 的立方体(Cube),因此地形可以垂直延伸到 ±21 亿格的范围。
这是一个纯基础设施模组:全仓 grep -rn 'GameRegistry.register' src/main/java 零命中,entity/ 目录下只有一个接口 ICubicEntityTracker.java,即它不注册任何方块、物品、实体、TileEntity 或合成配方。它也不注册任何游戏内指令:command/ 包里的 CubicCommandBase 与 SubCommandBase 都是 abstract,没有任何具体子类,也没有 CommandHandler.registerCommand 调用,属未移植的脚手架(详见下方"身份字符串"一节的 /cubicchunks 说明)。
身份字符串
以下字符串互不相同,均从源码读取而非目录名推断:
| 身份 | 值 | 来源 |
|---|---|---|
| 分类名 | cubicchunks1710 |
relation.md |
| 目录名 | CubicChunks1710 |
mirror/ 实目录(os.listdir 校验大小写) |
| modid | cubicchunks(全小写) |
CubicChunks.java:100 MODID = "cubicchunks",@Mod(modid = CubicChunks.MODID, ...) 于 :77;与 gradle.properties:10 的 modId 一致 |
| 人类可读名 | Cubic Chunks |
gradle.properties:6 modName |
| FML 容器 modid(coremod) | cubicchunkscore |
asm/CubicChunksCoreContainer.java:43 meta.modId = "cubicchunkscore",meta.name = "Cubic Chunks Coremod"(:44),meta.parent = "cubicchunks"(:52) |
| 资源 domain | cubicchunks(唯一) |
src/main/resources/assets/ 下只有 cubicchunks/ 一个子目录 |
| 核心包名 | com.cardinalstar.cubicchunks |
gradle.properties:14 modGroup |
| 存储格式 ID | cubicchunks:anvil3d |
api/world/storage/StorageFormatFactory.java:37 |
| jar 名 | 由 modId 推导 |
gradle.properties:190 的 customArchiveBaseName 被注释,故回退为 cubicchunks |
| 世界类型 level 字符串 | VanillaCubic |
api/worldtype/VanillaCubicWorldType.java:43 |
分类名
cubicchunks1710不是 modid:它比 modid 多了1710(1.7.10 的版本后缀)。取 modid 时必须以CubicChunks.MODID为准。
版本
无法核实——本仓是零 tag 浅克隆(git describe --tags 直接报 fatal: No names found, cannot describe anything.;git tag | wc -l 为 0;git rev-list --count HEAD 为 1)。
采用的版本闸门是 Form C(真实构建 + 零 tag 浅克隆),理由如下:
- 这是真实构建(Form A 不适用):仓根有
gradle.properties、build.gradle.kts、dependencies.gradle、settings.gradle.kts - 但
build.gradle.kts只有 4 行plugins { id("com.gtnewhorizons.gtnhconvention") },版本号完全由外部 convention 插件从 git tag 推导;mcmod.info:7插值${modVersion},而modVersion在仓内任何文件里都不存在(grep -rn 'modVersion' --include='*.kts' --include='*.gradle' --include='*.properties' --include='*.txt'零命中) - 因此 mod 版本无法从源码确定,不予捏造
可核实的版本相关字段只有:
| 字段 | 值 | 来源 |
|---|---|---|
| Minecraft | 1.7.10 | gradle.properties:24 |
| Forge | 10.13.4.1614 | gradle.properties:27 |
| MCP channel / mappings | stable / 12 |
gradle.properties:30,33 |
FML MCVersion 校验值 |
1.7.10 |
asm/coremod/CubicChunksCoreMod.java:47 |
| 提交 | 80f11205aac444595f7546a9e29ee31fd20a8a3c(git cat-file -t → commit) |
git log -1 |
本条目不使用
git describe作为版本闸门。 该命令在此仓直接失败;即使在有 tag 的克隆中,CubicChunks 系列的 tag 也常与实际目标版本不一致。
依赖
硬依赖(1 个)
- RegionLib ——
dependencies.gradle中implementation("com.github.GTNewHorizons:RegionLib:v0.1.0-GTNH:dev"),并在@Mod(... dependencies = "required-after:RegionLib;")显式声明(CubicChunks.java:77)。缺失时 FML 直接拒绝加载。
运行时依赖(implementation,随 Maven 发布)
- GTNHLib 0.11.24 —— 提供
@Config配置框架、LazyBlock等
软依赖 / 仅编译期(compileOnly,运行时不要求)
- ChunkAPI(
chunkapi-mc1.7.10:0.8.1)—— 可选,MIXIN_COORD_PACKER_CHUNKAPI需addRequiredMod启用 - EndlessIDs(
endlessids-mc1.7.10:1.7.1) - Et Futurum Requiem(
2.6.2.21-GTNH-daily)—— 可选,@Optional.Method启用深板岩填充 org.jetbrains:annotations:26.0.2、org.projectlombok:lombok:1.18.34(构建期)
仅开发期(devOnlyNonPublishable)
- NotEnoughItems 2.8.111-GTNH、JUnit 5
reference-only
maven.modrinth:archaicfix:0.8.0—— 在dependencies.gradle中被注释,未参与构建
运行时隐含依赖
- UniMixins ——
gradle.properties:101usesMixins = true,gtnhmixins 体系(IMixins/IEarlyMixinLoader/ILateMixinLoader)需要它;三个 mixin JSON 均要求minVersion: 0.8.5-GTNH - MixinExtras —— early/late JSON 要求
mixinextras.minVersion: 0.5.0
编译期语言构成:
find src -name '*.scala'与-name '*.kt'均为 0;309 个.java(src/main/308 +src/test2/1)。纯 Java,无 Scala/Kotlin 混编。语言文件 2 个:en_US.lang、ja_JP.lang(ja_JP为 HEAD 提交add japanese (#122)所加)。
实际注册的内容(存活)
| 类别 | 数量 | 说明 |
|---|---|---|
@Mod 注解 |
1 | 仅 CubicChunks.java:77。用 grep -rlF '@Mod(' 统计(带括号)得 1 个文件;若用裸 @Mod 子串会得 28 个文件,差额全部是 @Mixin、@Mod.EventHandler、@Optional.Method 等无关注解 |
| 方块 / 物品 / TileEntity / 实体 / 配方 | 各 0 | grep -rn 'GameRegistry.register' src/main/java 零命中 |
| 游戏内指令 | 0 | command/ 两个类均 abstract,无具体子类、无注册调用 |
| 网络通道 | 1 | 通道名 cubicchunks1(NetworkChannel.java:38) |
| 网络封包 | 8 | CCPacketEntry 枚举,:5-12 |
| 世界类型 | 1 | VanillaCubicWorldType,显示名 Vanilla + Cubic |
| 配置键 | 18 | CubicChunksConfig 的 @Config.LangKey 计数(无重复键) |
| Mixin 注册条目 | 76 | Mixins 枚举,其中 74 EARLY / 2 LATE |
@Mixin 源文件 |
89 | 78 个已注册文件 + 11 个访问器接口 |
| ASM 转换器 | 1 | AddEmptyConstructorToChunk |
| coremod 容器 | 1 | CubicChunksCoreContainer(modid cubicchunkscore) |
| 存储格式 | 1 | cubicchunks:anvil3d → RegionCubeStorage |
| 存活的世界生成内容 | 2 | 地形目标组 caves-all;EFR 群系填充器 low-deepslate |
| 语言键 | 36 条 | 39 行文件中的有效 key=value 数;其中 cubicchunks.command.* 共 9 条全部失效 |
/cubicchunks指令并不存在。en_US.lang:16-27保留了一整套cubicchunks.command.usage.*/cubicchunks.command.config.*语言键,看起来对应上游的/cubicchunks config set|reload指令,但本移植只有CubicCommandBase(abstract)与SubCommandBase(abstract)两个空壳:无具体子类(grep 'extends SubCommandBase'只命中SubCommandBase自身)、无implements ICommand、无实例化、也无CommandHandler.registerCommand调用。en_US.lang:6-7的cubicchunks.gui.worldmenu.*同理失效(IGuiCreateWorld未注册且无使用者)。
世界类型列表
- Vanilla + Cubic 世界类型 - 唯一的
WorldType子类,显示名Vanilla + Cubic,必须创建世界时主动选择 - 立方区块与列结构 - 16³ 立方体 + 无限高列的两层结构、
CubeMap与三套高度图 - 高度与建筑限高 - ±21 亿格的立方体边界、按维度覆盖的世界高度与服务器限高
世界生成列表
- Cubic Vanilla 装饰器 -
terrain()/population()依赖图;本移植实际只注册caves-all与 EFR 的low-deepslate - 洞穴生成器 - 面条/意面洞穴代码完整但注册语句全被注释,实际生成 0 个
- 世界生成卡死看门狗 - 10000 ms 生成超时看门狗与崩溃回调
设置列表
网络列表
- CubicChunks 网络通道 - 通道
cubicchunks1与 8 个封包类型 - 版本握手 -
@NetworkCheckHandler进出服版本兼容判定
API 列表
- 立方区块 API -
api/包 36 个接口与CCAPI静态入口 - 世界生成 API - 装饰器、
IDependencyGraph依赖图与四阶段生成 - 存储格式 SPI -
StorageFormatFactory/ICubicStorage格式注册契约
兼容列表
- 假高度世界生成兼容 - 向 6 组模组分发事件时把世界高度伪装为 256 再还原
- 模组兼容与集成 -
Mods枚举 270 条目、coremod/ASM、以及 Angelica/ChunkAPI/JourneyMap/AE2/EFR 的集成点
存储列表
- CubicChunk 存储格式 -
RegionCubeStorage成对读写与影子分页区域文件
Mixin 列表
- Mixin 集合 - 76 个注册条目、89 个
@Mixin文件、3 个数组为空的 JSON 与 4 处模组门控