BallisticsFramework Wiki 首页¶
BallisticsFramework 是一个 NeoForge lib 模组,为 Minecraft 模组生态定义了一套终点弹道伤害协议层。枪械模组、载具模组、护甲模组可通过共同依赖此协议,在穿深、入射角、装甲等效厚度等高维弹道信息上互通协作。
我是什么角色?¶
本 wiki 针对两类使用者提供不同的学习路径:
| 如果你要… | 你的角色 | 从何开始 |
|---|---|---|
| 让枪械/炮弹发射的弹丸穿透护甲、传递弹道信息 | 武器侧开发者 | 武器模组:发起协议伤害 |
| 让生物/载具拥有装甲,判定是否被击穿 | 护甲侧开发者 | 护甲模组:响应协议伤害 |
| 让护甲物品(头盔/胸甲/护腿/靴子)拥有弹道防护 | 护甲物品开发者 | 护甲模组:响应协议伤害(BFArmorMaterial 章节) |
| 快速了解协议能做什么、有哪些类 | 所有开发者 | 核心API速览 |
快速导航¶
| 如果你想要… | 前往… |
|---|---|
| 了解协议是什么、解决什么问题 | 认识 BallisticsFramework |
| 把 lib 加到项目依赖里 | 安装与依赖配置 |
| 用最少代码发起一次协议伤害 | 武器模组:发起协议伤害 |
| 用最少代码让实体拥有装甲 | 护甲模组:响应协议伤害 |
| 让护甲物品(头盔/胸甲等)自带弹道防护 | 护甲模组:响应协议伤害(BFArmorMaterial 章节) |
| 实现护甲物品的完整管线——槽位映射、爆反、跳弹 | BFArmorMaterial 接口 |
| 构造完整的上文,传递穿深、入射角等信息 | 构造命中上下文 |
| 在击穿/未击穿/跳弹后做后续处理 | 回调与事件处理 |
| 让不同模组通过扩展字段交换自定义数据 | 侧信道扩展 |
| 实现装甲等级判定(简易模式) | 装甲等级体系 |
| 覆写斜穿修正、做精密数值判定 | 穿深修正与斜穿效应 |
| 让原版生物攻击也走穿甲判定 | 协议外伤害兼容 |
| 理解协议内部的完整调用链 | 穿甲判定管线 |
| 自定义扩展 key 的类型安全用法 | 类型安全扩展机制 |
| 了解 ThreadLocal 上下文栈与 Mixin 注入点 | ThreadLocal 与 Mixin |
| 查某个类/方法的签名 | API 参考 |
| 遇到问题了 | 常见问题 |
Wiki 章节¶
- 第一章:快速上手 — 协议概述、安装配置、武器侧与护甲侧最简示例、API 类全景速览
- 第二章:武器侧开发 —
BFDamageContext完整构造、穿深与伤害值、命中几何、BFDamageHandler回调、侧信道扩展 - 第三章:护甲侧开发 — BFHurtTarget 简易/精密双模式、
ArmorLevel装甲等级、斜穿修正、最终伤害计算、原版伤害兼容、BFArmorMaterial 护甲物品接口 - 第四章:协议内幕 — 穿甲判定五步管线、扩展注册机制、ThreadLocal 上下文栈与 Mixin 注入
- 附录: API 参考 — 全部公开 API 索引;常见问题
设计原则¶
协议的核心设计原则是不替代原版,包裹原版:
- 绝不绕开
Entity#hurt,绝不直接setHealth - 对于未声明协议感知的普通实体,伤害完全走原版流程
- 武器侧和护甲侧通过协议协商穿甲结果,双方只需依赖
api.*包 - 命中上下文通过 ThreadLocal 隐式传递,使用者无需关心线程细节