精确弹道轨迹预览

精确弹道轨迹预览

精准弹道轨迹预览是一款基于NeoForge的Minecraft客户端模组,可显示实时弹道轨迹预览。类似于PTP,但具有更高的轨迹精度且无多人游戏限制。由maDU59(MIT协议)的ptp模组分叉而来。

精准弹道轨迹预览

衍生自 maDU59 的 Projectile Trajectory PreviewMIT 许可证


你是否曾好奇你的箭矢、雪球或药水会落在何处?本模组提供弹道轨迹的可视化预览,类似 PTP,但预测精度更高且无多人游戏限制。

🔎 特性

  • 轨迹可视化: 在发射前显示投射物的预期路径。
  • 目标高亮: 轨迹颜色会提示击中目标的更高可能性。

⚠️ 限制与说明

  • Minecraft 的投射物物理机制包含随机散布偏移,因此实际落点可能与预览略有差异。
  • 然而,轨迹预测的设计比原版 PTP 实现更为精确。

🔬 相较原版 PTP 的技术变更

此衍生版本修改了模拟逻辑和多人游戏行为:

多人游戏行为

  • 移除了服务器握手检查(serverHasMod)
  • 移除了网络验证逻辑
  • 弹道预览现在始终在客户端可用(无需服务器支持)

模拟变更

  1. 移除了 projectileInfo.order 更新系统
    原版实现使用可配置的 order 数组更新运动。此分支将其替换为固定的每刻更新序列:
    • 位置更新
    • 阻力应用
    • 重力应用
      这使得运动模拟保持一致,更接近原版投射物行为。

 

  1. 重做了实体碰撞处理
    • 将宽相位 AABB 膨胀从 1.0 减少到 0.3。
    • 添加了基于距离的散布感知实体命中检测。
    • 当射线与真实包围盒相交时,添加了“保证命中”检测标志。

 

  1. 改进了散布模拟
    • 添加了基于距离的散布偏移:
      spreadOffset = normalizedVelocity * (distanceFromStart * maxSpreadFactor)
    • 将散布乘数从 * 3.0 调整为 * 2.0
    • 散布现在每步动态模拟,而非近似处理。

 

  1. 优化了水下物理处理
    • 更明确地在正常阻力/重力与水下值之间切换。
    • 在模拟循环期间一致应用。

 

  1. 小幅稳定性改进
    • 早期速度归零检查 (vel.lengthSqr() < 1e-8)
    • 为散布计算添加了 startPos 追踪。

📦 整合包

欢迎将此模组包含在你的整合包中。


法律信息 / 版权声明: 在 GitHub 上查看版权声明