Pibrary 是 PickAID 系列的根基础模组,不再承担“把所有引擎都塞进一个仓库”的职责。
当前 Start stage 的目标很明确:
- 保留
pibrary作为真正存在的公共核心模组; - 把跨仓库都要依赖的基础边界沉淀成稳定 API;
- 为后续独立仓库提供统一的核心契约,而不是继续扩张旧单体实现;
- 让老代码可回溯、可迁移,但不再让 README 继续把它包装成最终架构。
Pibrary 现在负责以下长期核心能力:
- 核心服务定位与基础 service registry;
- 配置、诊断、状态、目标选择、注册等通用契约;
- 实体生命周期、实体选择与高性能 projectile trace 的公共边界;
- 面向可选
PiJEICompat的 JEI 中立模块 / bootstrap / spec 契约; - 作为 Pi 系列公共依赖的最小稳定根;
- 为独立基础库和 engine 模组提供共同语言。
以下内容不再定义为 Pibrary 自身最终边界:
- 网络传输实现;
- 序列化实现;
- KubeJS 插件加速层;
- 对象计数 / 反应图 / 数据图逻辑本体;
- 相机、叙事、UI、实体特效、数据图等独立引擎。
当前推荐关系如下:
Pibrary:根核心模组与公共基础 API。PiNet:独立网络基础库。PiSerializeKit:独立序列化基础库。PiKubeJSCompat:独立 KubeJS / RecipeJS / builder compat 库。PiJEICompat:独立 JEI compat 库,把api/jei中立契约转成真实的 recipe viewer 插件。PiDataGraph:承载对象计数、反应链、图驱动逻辑,并使用PiSerializeKit做强类型序列化。- 未来的
PiEngine家族:承载相机、UI、动画、故事、渲染桥等上层引擎。
这个仓库目前分成两层:
src/main/java/org/pickaid/pibrary/api/**这里开始建立新的核心 API 面。src/main/java/org/pickaid/pibrary/content/**与其他旧包 这里仍保留旧单体时代代码,后续会逐步拆分迁移。
历史单体快照保留在:
restore/legacy-monolith-20260331
它的作用是:
- 保留旧实现以便迁移和回看;
- 避免在 start stage 里把旧逻辑重新塞回新架构说明里;
- 让新 API 可以逐步接管旧内容,而不是一次性硬删。
当前已经开始明确这些基础面:
api/core服务 key 与 service registry。api/config配置条目与配置作用域边界。api/diagnostics调试/诊断输出统一入口。api/registry面向未来 registry kit 的注册请求与阶段定义。api/state通用状态 key 与同步策略。api/targeting目标选择查询与 resolver 契约。api/entity实体生命周期与受击处理边界。api/projectile面向性能优化的 projectile trace / impact 契约。api/jeiJEI 中立的 recipe-viewer 契约、模块收集面与 GUI / alias / transfer 规格。
这些类目前刻意保持轻量:
- 先把边界做对;
- 先能被多个 repo 共同引用;
- 等实际 engine/compat 模组接入后,再决定哪些部分需要沉淀成实现。
以下内容本阶段只保留边界,不急着做重量级实现:
- 自动配置装配器;
- 通用网络同步框架;
- 完整 registry helper runtime;
- 复杂 targeting 几何实现;
- 旧单体功能的一次性迁移。
- 对象计数逻辑本体。
当前仓库仍使用已有发布仓路径:
repositories {
maven { url = 'https://maven.mihono.cn/repository/pickaid1201/' }
}- 让
Pibrary的核心 API 被PiNet、PiSerializeKit、PiKubeJSCompat和后续 engine repos 实际消费; - 让
PiDataGraph承担对象计数与图驱动逻辑,PiSerializeKit负责强类型序列化边界; - 逐步把旧单体中的通用部分抽离成稳定基础契约;
- 按 repo 规划继续拆分引擎实现,而不是让
pibrary再变回总包仓。