Shoulder Surfing: Iron's Spells Integration

Shoulder Surfing: Iron's Spells Integration

一个简单的客户端模组,整合了Shoulder Surfing Reloaded和Iron's Spells 'n Spellbooks,使相机在施法时——无论是通过法术书、普通法术还是快速施放——都能自动跟随你的准星。

魔法

Shoulder Surfing: Iron's Spells Integration

一个简单的客户端模组,整合了 Shoulder Surfing ReloadedIron's Spells 'n Spellbooks,使摄像机会在你施放法术后自动跟随准星目标——无论是通过法术书、普通施法还是快速施法。兼容手柄模组。

Shoulder Surfing Camera Decoupled

Shoulder Surfing Camera Coupled

兼容性

以下模组经过测试,运行正常:

Bug 报告

这不是 Shoulder Surfing Reloaded 的官方附属模组,因此任何问题都应报告到 本模组的问题追踪器 ,而不是向 Shoulder Surfing Reloaded 团队报告。

技术实现

本模组修复了在使用 Shoulder Surfing 视角模式时可能遇到的问题。
这些修复是通用的,并且无论摄像机是否解耦都会生效

以下是本模组修复的问题:

持续法术施放

本模组使用 IAdaptiveItemCallback
回调(由 Shoulder Surfing Reloaded 模组提供),使其识别为正在对准准星目标
从而确保玩家看向准星目标,无论施法来源(例如法术书、卷轴物品)是什么,
以及摄像机是否解耦。

此修复即使在摄像机耦合时也有效,因为如果没有它,在 Shoulder Surfing 模式下施放持续法术会导致玩家直视前方,而不是准星方向。

通过法术书施法时看向准星目标

当使用卷轴物品并右键单击鼠标施放法术时,Shoulder Surfing 模组会自动看向准星目标,
前提是摄像机已解耦
但通过法术书施法时并非如此——这是一种常见的施法方式。

通过 Mixin 修改 CastPacket QuickCastPacket 的构造函数,因为这些类只在客户端构建,并且只在玩家通过按键施法时触发。这确保了该模组与任何手柄模组兼容,并保持纯客户端运行,不会向网络发送数据包。

Iron Spells 模组提供的官方 API 目前功能有限,且所有事件仅在服务端调用。这使得在保持本模组纯客户端的同时支持手柄模组并避免依赖它们内部 API 变得困难。

使用卷轴物品时始终看向准星目标

我们在 Scroll.use 被调用之前调用 ShoulderSurfingImpl.lookAtCrosshairTarget,以修复两个问题:

  • Shoulder Surfing 模组在你使用任何物品时如果摄像机已解耦,会自动调用 ShoulderSurfingImpl.lookAtCrosshairTarget 。然而,当通过手柄使用卷轴物品时,Shoulder Surfing 无法识别该操作。
  • 此修复即使你不使用手柄也是有用的,因为当摄像机耦合时,ShoulderSurfingImpl.lookAtCrosshairTarget 不会被自动调用。如果没有此修复,法术将向玩家正前方施放,而不是瞄准准星目标。

玩家将始终看向准星目标,无论摄像机是耦合还是解耦,也无论输入方式如何——手柄或键盘。

免责声明

本模组并非官方 Minecraft 产品。
它未经 Mojang 或 Microsoft 批准,也与它们无任何关联。

本模组与 Shoulder Surfing Reloaded 团队Iron's Spells 'n Spellbooks 没有关联。

许可证

MIT

你也可以在 GitHub 上找到源代码