BuildCraft

[!INFO] Git Commit: 213a3fc | Updated: 2026-10-02

BuildCraft 是 Minecraft 1.7.10 / Forge 10.13.4.1614 的工业物流模组群。本仓库一仓 7 个 modid, 全部带 | 分隔符,没有任何一个等于分类名 buildcraft。

属性 值
分类名 buildcraft(取自仓库名,不是 modid)
modid 数 7(BuildCraft|Core / Transport / Builders / Energy / Factory / Robotics / Silicon)
包名 buildcraft(gradle.properties: modGroup)
资源域 8 个:buildcraft(公共)+ 7 个模块域 buildcraftcore / buildcrafttransport / buildcraftbuilders / buildcraftenergy / buildcraftfactory / buildcraftrobotics / buildcraftsilicon
语言 源码 1038 个 .java(其中 1022 在 src/main/java,16 在 misc/tests/java/ 测试脚手架,不随 jar 发布);0 Scala、0 Kotlin、4 Gradle
源码目录 /Users/evlos/a/mirror/BuildCraft/

⚠️ gradle.properties 的 modId = BuildCraft|Core 是构建期字段(供 mcmod.info 填充), 真正的注册名以各 BuildCraft*.java 的 @Mod(modid = ...) 为准,两者恰好一致。

一仓 7 个 modid(实测)

modid 主类 资源域 实际注册对象数 其中方块 / 物品 / 管道 / 实体
BuildCraft|Core BuildCraftCore buildcraftcore 16 5 / 11 / 0 / 0
BuildCraft|Transport BuildCraftTransport buildcrafttransport 48 2 / 8 / 38 / 0
BuildCraft|Builders BuildCraftBuilders buildcraftbuilders 9 7 / 2 / 0 / 0
BuildCraft|Energy BuildCraftEnergy buildcraftenergy 6 3 / 3 / 0 / 0
BuildCraft|Factory BuildCraftFactory buildcraftfactory 8 8 / 0 / 0 / 0
BuildCraft|Robotics BuildCraftRobotics buildcraftrobotics 6 2 / 3 / 0 / 1
BuildCraft|Silicon BuildCraftSilicon buildcraftsilicon 7 3 / 3 / 0 / 1
合计 — — 100 30 / 30 / 38 / 2

⚠ 本表的列是源码里实际注册的对象数(方块+物品+管道+实体), 不是「本 wiki 的条目文件数」——后者是 133,且 tile/、gui/、network/、 recipe/、setting/ 这 5 个维度跨模块,无法干净地归到单一 modid 下。 按条目文件里 所属 modid 字段机械统计会得到 Transport 50 / Silicon 16 / Factory 15 这类数字,不可用作「该 mod 注册了多少东西」的证据。

全部 7 个非 Core 模块的 @Mod(dependencies = DefaultProps.DEPENDENCY_CORE), 即都硬依赖 BuildCraft|Core。

实际注册规模(源码实测,集合去重)

维度 实际数量 本 wiki 覆盖
方块 30 30
物品(非管道) 30 30
管道物品 38(16 物品 + 12 流体 + 9 能量 + 1 结构) 38
实体 2 2
TileEntity 31 见各方块条目
多方块 0 —
配置 1 组 1

合计 101 个条目。

⚠️ 本 mod 没有多方块结构

brief 假设「buildcraft 的机器多为多方块」——经源码核对不成立:

  • 全仓库 Multiblock / MultiBlock 关键词命中 0 个文件。
  • 源码中不存在任何多方块框架(无 Multiblock 基类、无控制器、无尺寸常量)。
  • TileTank 只持有一个 Tank(BUCKET_VOLUME * 16 = 16000 mB),外面套的 TankManager<T> extends ForwardingList<T> 只是单元素列表封装, tankManager 由 new TankManager<>(tank) 构造,不做相邻合并(仓库内 .merge( 调用为 0)。
  • Quarry / Builder 靠**区域(chunk 范围)**工作,不是多方块方块结构。

因此本分类没有 multiblock/ 维度目录——不建空目录,也不为不存在的结构编条目。

⚠️ 三处「数调用点」陷阱

陷阱 朴素结果 实测 说明
grep registerItem 30 30 + 38 管道 38 个管道走 buildPipe(...) 辅助方法,不经过 BCRegistry.registerItem
grep registerTileEntity 只查 7 个 BuildCraft*.java 26 31 漏掉的 5 个在两个 Proxy 里:energy/EnergyProxy.java:18-21 注册 TileEngineStone/TileEngineIron/TileEngineCreative 共 3 个,transport/TransportProxy.java:29-37 注册 TileGenericPipe/TileFilteredBuffer 共 2 个。注意 TileEngineWood 不在其中——它在 BuildCraftCore.java:478-479,类在 buildcraft.core 包、注册也归 BuildCraft|Core;另 3 个引擎类在 buildcraft.energy 包、归 BuildCraft|Energy。两个 Proxy 的 registerTileEntities() 确实被调用(BuildCraftEnergy.java:463、BuildCraftTransport.java:534),不是死代码
grep registerBlock 33 处命中 30 个方块 命中数含 BCRegistry.java 自身的 4 个方法定义;另有 pipeBlock 走三参数形式 registerBlock(x.setBlockName("pipeBlock"), ItemBlock.class, true),两参数正则会漏掉它
grep Multiblock 0 0 名字不骗人,但结论也需源码确认

方块

物品

实体

配置

  • config - buildcraft.core.config.BuildCraftConfiguration(extends net.minecraftforge.common.config.Configuration)`

依赖范围

依赖 relation.md 状态 处理
Minecraft Forge 非 mod,无行 明确写出,不建分类
gtnhlib 有行(gtnhlib),尚未成文 可留前向引用,本页未引用

buildcraftcompat、buildcraftoiltweak 是独立分类(relation.md 已登记且已完成), 它们是 BuildCraft 的下游/伴生 mod,不是本仓库的一部分。

源码缺陷汇总

# 缺陷 位置
1 注册名 machineBlock 对应的类是 BlockQuarry——注册名与语义相反,照名字搜会找错 BuildCraftBuilders.java:610
2 buildPipe 受 isEnabled("pipes", ...) 控制,注册数依配置而定,源码里没有固定答案 BuildCraftTransport.java buildPipe 实现
3 BuildCraftConfiguration 与 BCConfigElement<T> 是两条互不相干的继承链,易被误读成父子关系;仓库内无任何类 extends BuildCraftConfiguration core/config/BuildCraftConfiguration.java:16、BCConfigElement.java:13
4 注册名 ≠ Java 变量名:BCRegistry 剥掉 tile./item. 前缀后取 unlocalized name,二者大量不同(如变量 springBlock→注册名 eternalSpring、assemblyTableBlock→laserTableBlock、facadeItem→pipeFacade)。照变量名写条目会 17 处出错 core/BCRegistry.java:46-48、:64-66
5 pipeFluidsObsidian 默认不注册:38 个管道里唯一被 experimentalContent 包住的,而该项默认 false。其余 37 个无此开关 BuildCraftTransport.java:424-425、BuildCraftCore.java:406-409
6 springBlock 注册受 worldgen.enable 保护(默认 true,所以默认会注册);关掉后水泉方块与 SpringPopulate 事件一起消失 BuildCraftCore.java:426-431、:376-379、:567-569
7 4 个注册项缺 en_US.lang 条目:blockRedPlasma / buildToolBlock / pipeBlock 仅 fr_CA.lang 有键,pipePlug 连 fr_CA.lang 也没有——这 4 项在英文界面下会显示未翻译名 assets/buildcraft/lang/(31 个语言文件,已逐个 grep)
<!-- AUTO-INDEX:START -->

完整索引(自动生成)

本节由 tools/sync_catpage_index.py 从磁盘实际文件生成,共 133 个条目。 上面各节是人工撰写的概览;任何未在上面出现的条目都在这里。 重新生成:删掉本节两个 <!-- AUTO-INDEX --> 标记之间的内容后重跑脚本。

block/(30)

全部 30 个条目已在上文列出。

entity/(2)

全部 2 个条目已在上文列出。

gui/(1)

条目 条目 条目 条目
BuildCraft GUI 层:7 个 IGuiHandler + 19 个 GUI ID

item/(68)

全部 68 个条目已在上文列出。

network/(1)

条目 条目 条目 条目
BuildCraft 封包层:5 个频道 + 14 个包 ID

recipe/(1)

条目 条目 条目 条目
BuildCraft 配方体系:4 个配方管理器 + 30 个本仓调用点 + GTNH 短路边界

setting/(1)

全部 1 个条目已在上文列出。

tile/(29)

条目 条目 条目 条目
BlockLaserTable:一个方块、六个 meta、六个 TileEntity TileAdvancedCraftingTable TileArchitect TileAssemblyTable
TileAutoWorkbench TileBlueprintLibrary TileBuilder TileChargingTable
TileConstructionMarker EnergyStage TileEngineBase 与四种引擎(Wood / Stone / Iron / Creative) TileFiller
TileFilteredBuffer TileFloodGate TileGenericPipe TileHopper
TileIntegrationTable TileLaser TileMarker / TilePathMarker TileMiningWell
TilePackager TileProgrammingTable TilePump TileQuarry
TileRefinery TileRequester TileStampingTable TileTank
TileZonePlan

<!-- AUTO-INDEX:END -->