BD lib

[!INFO] Git Commit: 870d288 | Updated: 2026-10-02

BD lib(modid bdlib,显示名 BD lib)是 bdew 编写、采用 Scala 语言实现的 Minecraft 1.7.10 Forge 库模组,遵循 Minecraft Mod Public License 1.0。仓库位于 https://github.com/bdew/bdlib,src/main/scala/net/bdew/lib/ 下共 209 个 .scala 文件、0 个 .java 文件。

它自身不注册任何游戏内容:0 方块、0 物品、0 TileEntity、0 合成配方、0 创造标签页。因此在创造模式物品栏中看不到属于本模组的任何条目 —— 这类库模组在整合包中通常以「看不见但处处生效」的方式存在。注册证据:GameRegistry.registerBlock / registerItem 等调用只出现在供下游模组调用的框架类中(config/BlockManager.scala:43、config/ItemManager.scala:28、machine/Machine.scala:35),全仓没有任何一处是 BD lib 在自身加载时注册具体内容。

它的真实价值是四层框架:方块/物品/机器的注册框架、DataSlot 状态与客户端同步框架、配置驱动的多方块机器框架,以及一套自定义文本 DSL 与网络封包框架。Misc.getActiveModId 读取 Loader.instance().activeModContainer().getModId(Misc.scala:28-30),说明该库的设计前提是「被其他模组在初始化阶段调用」,注册命名空间归属于调用方而非 bdlib。

本模组在 gradle.properties:168 中 curseForgeRelations 为空、dependencies.gradle 依赖块为空,不硬依赖任何其他模组。需要特别说明的是:源码中 buildcraft 的命中数为 0(grep -rn -i 'buildcraft' --include=*.scala src/),本模组与 BuildCraft 没有任何代码级关联,其 power 子包是一套与具体能量系统无关的抽象功率记账框架。

对玩家而言,BD lib 唯一可感知的界面是两条权限等级 2 的服务端调试指令,以及机器的 GUI 与多方块提示文案 —— 后者由 assets/bdlib/lang/*.lang 中的 bdlib.multiblock.* 系列键提供。

API 列表

  • BD lib 库本体 - 模组身份、@Mod 声明、3 个事件回调与「零注册」证据
  • 注册框架 - Machine / BlockManager / ItemManager / MachineManager 如何替下游模组注册方块物品

多方块列表

  • 多方块框架 - MachineCore 与配置段 Modules / Required 驱动的组装规则
  • 模块方块 - BlockModule 的同 core 连接判定、连接纹理与拆除行为

数据同步列表

配方与配置列表

  • 配方与配置 DSL - 自定义文本语法:字符映射、类宏、有序/无序配方、配置语句
  • 条件表达式 - HaveMod / HaveAPI / HaveOD 与布尔运算的跨模组条件化配方

网络列表

  • 封包编解码 - 用 case class 定义封包,Java 原生序列化经 FMLProxyPacket 收发
  • 封包白名单 - resolveClass 类名过滤,防止反序列化漏洞

指令列表

  • /dumpregistry - 导出方块/物品/自定义堆栈/矿物字典/流体注册表到 registry.dump
  • /oredistribution - 统计指定半径与高度范围内的矿物分布,可写文件

配置列表

  • 配置加载机制 - config/bdlib 的内置配置、overrides 覆盖与字母序加载规则