pV=nRT
[!INFO] Git Commit:
2e69fd3| Updated: 2026-05-25
pV=nRT(modid: pvnrt)是一个以理想气体定律 pV=nRT 为主题的气体物理模拟 mod。它让 Minecraft 世界里的空气成为可测量、可注入、可压强可视化的一种真实介质。
mod 名称取自气体定律本身:“pV=nRT”——pVnRT 只是把这个式子写成了类 CamelCase 的形式(gradle.properties 中 modName = pV\=nRT)。目录名 pVnRT 的连写风格与 modid 无关。
它不是渲染/视距类优化 mod,也不与 NEI 集成。
架构分层
pV=nRT 的运算不在 JVM 里,而是分四层:
Java 调度层 pvnrt.core.world.GasManager / EBSGasTracker
↓ direct ByteBuffer(JNI,零拷贝)
Rust 模拟层 gas-sim/ crate(cdylib)
↓
体素介质 16×16×16 EBS 粒度的气体场
↓
客户端呈现 压强梯度彩色体积渲染
| 属性 | 值 |
|---|---|
| modid | pvnrt |
| 显示名 | pV=nRT |
@Mod 主类 |
pvnrt.PVNRT |
| core mod | pvnrt.PVNRTCore(IFMLLoadingPlugin + IEarlyMixinLoader) |
| 版本 | pvnrt.Tags.VERSION(generateGradleTokenClass = pvnrt.Tags,构建期生成) |
| Minecraft | 1.7.10(acceptedMinecraftVersions = "[1.7.10]") |
| Forge | 10.13.4.1614 |
| 支持语言 | 仅 en_US |
| 编译目标 | Java 8 字节码(经 Jabel 允许 Java 17 语法) |
| 内容总量 | 1 方块 + 2 物品,无实体/维度/附魔/成就/配方 |
| 配置文件 | 实际不产生有效配置(Config 仅有遗留 greeting) |
| 网络包 | 1 个具体包 pvnrt:update-gradients |
内容体量
这是一个以系统而非以内容见长的 mod:全部游戏内内容只有 1 个方块和 2 个调试物品,代码量的绝大部分在气体数据结构、原生模拟与 3D 梯度渲染上。
- 内置 4 种气体:O₂、N₂、Ar、CO₂
- 玩家侧可用手段:风扇(搬运气体)+ Atmo-Scanner(读数)+ Gas Debugger(注入氧气)
- 唯一可视化输出:压强梯度的半透明体积渲染
依赖
| 依赖 | 坐标 | 性质 | 收录情况 |
|---|---|---|---|
| GTNHLib | com.github.GTNewHorizons:GTNHLib:0.9.47 |
implementation,真实运行期依赖 |
本 wiki 已收录 |
| ChunkAPI | com.falsepattern:chunkapi-mc1.7.10:0.8.0 |
implementation,用于区块气体数据持久化 |
纯 API 库,未收录 |
| NotEnoughItems | com.github.GTNewHorizons:NotEnoughItems:2.8.82-GTNH |
runtimeOnlyNonPublishable dev-only,源码零引用 |
见 网络层 说明 |
| Angelica | com.github.GTNewHorizons:Angelica:2.1.13 |
runtimeOnlyNonPublishable dev-only |
本 wiki 已收录 |
| UniMixins | 经 usesMixins = true 自动引入 |
运行期依赖 | — |
NEI 与 Angelica 都是
runtimeOnlyNonPublishable,不会作为 Maven 依赖发布给下游 mod;NEI 更是全仓零引用。pV=nRT 不提供任何 NEI handler。
已知状态
⚠️ 该 mod 目前处于开发中、未可正常装机的状态:原生库路径硬编码为开发机相对路径且不随 jar 分发,详见 源码缺陷 第 1 条。仓库自带的 CLAUDE.md 与源码存在多处矛盾,不可作为事实来源。
条目
- 气体物质系统 - 4 种内置气体的参数、GasStack/GasList 容器与数字 ID 分配
- 大气组成 - 地表维度的默认大气配比(79.42% N₂ / 20.37% O₂ / 0.21% Ar / 0.0009% CO₂)
- 体素气体模拟 - 16×16×16 EBS 粒度的模拟、遮挡掩码与 24 bit 体素打包
- 原生模拟核心 - Rust crate
gas-sim与 JNI 零拷贝接口 - 梯度渲染 - 压强梯度的服务端→客户端体积渲染
- 网络层 -
pvnrt通道与唯一的梯度数据包 - Mixin 挂载点 - core mod 加载与 4 个 early mixin
- 方块 - 风扇(当前玩家无法获得)
- 物品 - Atmo-Scanner 与 Gas Debugger 两个调试工具
- 源码缺陷 - 10 项实测问题清单