跳转至

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 隐式传递,使用者无需关心线程细节