Backhand 集成

基本信息

属性 值
依赖等级 api(编译期 + 运行期强依赖)
声明位置 dependencies.gradle:5
坐标 com.github.GTNewHorizons:Backhand:1.8.8:dev
上游仓库 https://github.com/GTNewHorizons/Backhand
Java 包 xonin.backhand.*
引用文件数 21

功能

这是本 fork 的核心。 README 明确说明:

This version depends on Backhand and doesn’t have any dedicated equipment slots. (README.md)

上游 Battlegear 2 原本有自带的 battle 背包槽位,本 fork 移除了这些专用槽位,改由 Backhand 提供副手。因此本模组所有「副手」相关逻辑都改为调用 BackhandUtils,而不是自己的槽位系统。

使用的 Backhand API

API 用途 示例位置
BackhandUtils.getOffhandItem(player) 读副手物品 BattlegearUtils.java:82, 452、SpecialActionPacket.java:44
BackhandUtils.setPlayerOffhandItem(player, stack) 写副手物品 BattlegearUtils.java:104
BackhandUtils.getOffhandSlot(player) 取副手槽位 BattlegearRenderHelper.java:210
BackhandUtils.isUsingOffhand(player) 判断是否正在使用副手 ItemShield.java:110、QuiverItremRenderer.java:73
player.battlegear2$getOffhandSlot() 混注入的副手槽位访问器 BattlemodeHookContainerClass.java:363

按功能分类的调用点

子系统 调用点
格挡 / 体力条 BattlegearClientTickHandeler.java:63, 98(ItemShield 必须在副手才生效)
盾击 SpecialActionPacket.java:44(从副手取盾计算击退与伤害)
战斗模式 / 双持 BattlemodeHookContainerClass.java:94, 107, 316, 411
箭袋 ItemQuiver.java:67(在副手时禁用「潜行右键吐箭」)
射箭 BowHookContainerClass2.java:48、QuiverArrowRegistry.java:132, 183
掉落物 / 战利品 BattlemodeHookContainerClass.java:404-412(先查主手再查副手)
动画 EnumBGAnimations.java:23
渲染 BattlegearRenderHelper.java:210, 253, 291、ShieldRenderer.java:104、QuiverItremRenderer.java:73
HUD BattlegearInGameGUI.java:59, 78
客户端事件 BattlegearClientEvents.java:88、BattlegearClientTickHandeler.java:63, 98、ClientProxy.java:73
箭矢实体 AbstractMBArrow.java:107
玩家 tick BattlegearTickHandeler.java:54
生物 hook MobHookContainerClass.java:99
渲染器兼容 ShieldRenderer.java:16 导入 xonin.backhand.compat.IOffhandRenderOptOut

渲染器退出机制

ShieldRenderer 导入 Backhand 的 IOffhandRenderOptOut 接口(ShieldRenderer.java:16),并在 !BackhandUtils.isUsingOffhand(Minecraft.getMinecraft().thePlayer) 时走不同渲染分支(ShieldRenderer.java:104)—— 即盾牌不在副手时由 Backhand 接管其第一人称渲染。

数值

本条目不含独立数值页 —— Backhand 自身的副手槽位、按键等参数属于 Backhand 模组,不在本仓库范围内。

跨界内容隔离说明:backhand 分类是另一个条目,记录的是 Backhand 模组本身。本条目只记录 Battlegear2-for-Backhand 调用 Backhand API 的位置。Backhand 自身的配置项、键位、槽位规则请查阅 backhand 分类,本条目不复制其内容。

交互

条件 行为
副手为 IShield 启用格挡体力条与盾击(BattlegearClientTickHandeler.java:98-137)
副手为箭袋 「潜行右键吐箭」被禁用(ItemQuiver.java:67)
副手为非 IShield 盾牌潜行右键的接箭开关才会生效(ItemShield.java:110)
客户端渲染 盾牌不在副手时交由 IOffhandRenderOptOut 机制处理(ShieldRenderer.java:104)

合成配方

不适用。

相关条目

  • 盾牌 - 副手防御装备
  • Spear - 唯一允许副手持盾的武器
  • Quiver - 副手行为与 Backhand 绑定
  • Special 键位 - 两条分支都依赖副手判定