潜水与氧气

潜水与氧气

为Minecraft 1.12.2提供逼真的潜水、压力、减压和氧气机制。

🌊 Diving & Oxygen — 适用于 Minecraft 1.12.2 的潜水与压力系统

为 Minecraft 1.12.2 带来逼真的潜水、氧气、大气压力和环境物理效果!

Diving & Oxygen 通过动态的压力、氧气、减压、风与水物理系统,彻底改变水下探索和高海拔环境体验。

每一处深度、海拔、生物群系和天气状况都可能影响你周围的环境,让探索更加沉浸、更具技术性和危险性。


✨ 特性

🤿 潜水与水压

  • 当你潜得更深时,压力会自然增加

  • 压力根据水的实际深度计算

  • 压力以**大气压(atm)**显示

  • 大气压也会随你的海平面以上海拔而变化

  • 超过 2.2 atm 时,增加的压力开始产生生理影响

  • 极端压力会导致缓慢、氮麻醉、肌肉疲劳和直接伤害

  • 压力系统会根据你当前环境持续更新


🫁 氧气系统

Diving & Oxygen 用专用的氧气储备取代原版的空气气泡系统。

氧气消耗会根据你的活动动态变化:

  • 休息:1× 基础消耗

  • 移动:1.3×

  • 疾跑:1.8×

  • 主动游泳:2×

  • 高压:每增加一个大气压,消耗 +15%

在水面,经过一段可配置的短暂延迟后,氧气会逐渐恢复。

在高海拔地区,稀薄的大气会降低氧气恢复速度,若无适当装备,最终可能完全无法恢复氧气。


⚠️ 减压

潜水时你的身体会逐渐吸收压力。

一个简化的组织减压模型会持续比较组织压力与周围环境压力。

上升过快会导致减压压力不断累积:

  • 阶段 1 — 压力 > 1.0:肌肉疲劳

  • 阶段 2 — 压力 > 2.5:缓慢和反胃

  • 阶段 3 — 压力 > 4.5:失明和反复的内部伤害

下潜越深、上升越快,潜在的减压压力就越大。

深潜后请谨慎上升,以降低减压效应的风险。


⛰️ 大气压力与海拔

压力不仅在水下会变化。

随着你爬升得越高,大气压力会逐渐降低:

  • 低于 0.75 atm:缓慢

  • 低于 0.55 atm:疲劳和虚弱;无装备时氧气不再恢复

  • 低于 0.40 atm:直接缺氧伤害

海拔也会影响你氧气储备的恢复速率。


🌬️ 环境物理

Diving & Oxygen 添加了动态的环境作用力,影响玩家和生物实体。

💨 风

风通过多种环境因素以 3D 方式计算:

  • 海拔 — 海拔越高风越强

  • 地形暴露 — 12 条 3D 检测射线分析周围方块

  • 遮蔽物 — 附近的固体方块会降低风的暴露

  • 天气 — 下雨和雷暴会增加风强度

  • 随机阵风 — 风力和持续时间动态变化

  • 鞘翅 — 使用鞘翅飞行会给予玩家最大风暴露

风会对实体施加矢量力,产生的加速度受其质量影响。


🌊 洋流与水面波浪

水的运动随环境而变化。

海洋

  • 半稳定的水流单元

  • 缓慢变化的旋转模式

  • 动态的水下运动

河流

  • 水流方向基于地形坡度

  • 从四个方向检测地形以确定流向

水面波浪

  • 使用双谐波正弦系统

  • 结合主频率与调制频率

  • 使水面上的玩家轻微垂直振荡

在水面,玩家可以随波浪缓慢漂移和移动,营造更具动态的水环境。


⚖️ 生物物理

环境作用力也会影响生物实体。

所有 EntityLivingBase 实体都可能根据其质量受到风和水流的影响。

基本物理模型为:

acceleration = force / mass

Minecraft 原版生物有预定义的质量。

对于来自未知模组的生物,其质量可根据碰撞箱体积自动估算:

width × height × width

这使得环境物理系统无需预定义数值即可与其他模组的生物交互。


🛠️ /mobmass 命令

管理员命令允许你为每个世界单独管理生物质量。

命令 描述
/mobmass set <id> <mass|immune> 设置某生物类型的质量
/mobmass get <id> 显示当前质量
/mobmass reset <id> 移除自定义质量覆盖
/mobmass list 列出所有自定义质量覆盖

使用 immune 或 0 可使生物免疫环境作用力。

质量覆盖通过 WorldSavedData(NBT)按世界存储。


📊 潜水电脑 HUD

专用 HUD 取代原版空气指示器,实时显示关于环境和你身体状况的信息。

HUD 显示:

  • 环境压力,单位为 atm

  • 环境类型:SURFACE / DIVING / ALTITUDE

  • 潜水时间

  • 减压压力

  • 氧气储备

  • 上升速率,经过平滑处理以防止数值突变

  • 风与水流方向

  • 当条件变得危险时的环境警告

氧气仪表会随氧气水平下降动态改变外观,在你处于危险时更加醒目。

原版空气气泡被移除,以防止与新氧气系统冲突。


🖥️ 调试叠加层 — F9

按 F9 实时显示详细的环境和物理信息:

  • 玩家位置和生物群系

  • 风矢量

  • 风速(km/h)

  • 风暴露

  • 阵风状态

  • 水流

  • 水深

  • 水流方向

  • 施加的作用力:Fx、Fy、Fz

  • 玩家质量

  • 天气状况

  • 遮蔽状态

  • 鞘翅飞行状态


🎨 视觉效果

极端环境条件会影响你的屏幕:

缺氧暗角

  • 屏幕边缘的脉动暗色暗角

  • 当氧气降至 30% 以下时激活

减压暗角

  • 屏幕边缘的脉动深红色效果

  • 当减压压力变高时激活

两种效果均可通过配置启用或禁用。


⚙️ 配置

配置文件:

config/divingoxygen.cfg

允许你自定义模拟的许多方面:

  • 水压系数

  • 大气压系数

  • 海平面

  • 组织吸收率

  • 临界减压梯度

  • 压力伤害

  • 氧气消耗率

  • 氧气恢复率

  • 高原缺氧

  • 屏幕视觉效果


🔗 游泳与爬行集成

Diving & Oxygen 支持 Swimming & Crawling 1.5.2+。

两个模组可以协同工作,提供完整的游泳与潜水系统:

  • 检测 Swimming & Crawling 游泳姿态

  • 主动游泳增加氧气消耗

  • 游泳时动态计算潜水深度

  • 压力和氧气系统对玩家动作作出反应

  • 氧气系统会考虑游泳活动

  • 使用 Java 反射检测游泳姿态

  • 未安装 Swimming & Crawling 时包含原版回退系统


📋 兼容性

  • Minecraft 1.12.2

  • Minecraft Forge

  • Swimming & Crawling 1.5.2+ — 可选集成

  • 兼容其他模组的生物实体

  • 可按世界配置自定义生物质量

  • 环境作用力在服务端处理,以减少多人游戏中的同步问题


❓ 常见问题

我需要 Swimming & Crawling 吗? 不需要。模组包含原版回退,但 Swimming & Crawling 1.5.2+ 提供额外的游泳姿态检测和集成。

模组会取代原版空气气泡吗? 是的。Diving & Oxygen 使用自己的氧气储备系统,而非原版空气气泡系统。

压力只取决于潜水深度吗? 不是。压力同时受水深和海平面以上海拔影响。

它在多人游戏中可用吗? 是的。环境作用力在服务端计算,有助于保持玩家之间的模拟同步。

模组会影响生物吗? 会。生物实体会根据其质量受到风和水流的影响。也可使用 /mobmass 配置自定义质量。

这是逼真的医学模拟吗? 不是。压力、氧气和减压系统是受真实潜水生理学启发的简化游戏模型。

模组添加按键绑定吗? 不添加。主要系统会根据你的环境和玩家活动自动工作。


由 Agnist_greg 开发