-
Notifications
You must be signed in to change notification settings - Fork 2
Portable Monitor_CN
便携无线监测终端是一个手持设备,放入背包(含任意 Baubles 饰品栏)后自动显示 HUD,实时显示无线电网能量、EU/t 变化率与 GT 功率等级。无需放置任何方块。


- 手持设备,背包内(含 Baubles 饰品栏)自动显示 HUD
- 实时显示无线电网能量、EU/t 变化率、GT 功率等级
- 无需放置任何方块
- 通过 C→S→C 网络包同步,在单人世界和专用服务器中均可正常使用
- HUD 状态四分支与无线能量监视器统一(计算中 / 静默 / <1EU / 正常)
- 不可堆叠(setMaxStackSize(1))
在工作台中按以下 3×3 矩阵合成便携无线监测终端:
| 槽位 | 第 1 列 | 第 2 列 | 第 3 列 |
|---|---|---|---|
| 第 1 行 | LV 接收器 | 钢板 | LV 接收器 |
| 第 2 行 | LV 接收器 | 电脑屏幕覆盖板 | LV 接收器 |
| 第 3 行 | 钢螺丝 | 钢板 | 钢螺丝 |
| 材料 | 数量 | 来源 |
|---|---|---|
| LV 接收器 (Sensor_LV) | 4 | GT 工作台合成 |
| 钢板 (plateSteel) | 2 | GT 板材成型 |
| 电脑屏幕覆盖板 (Cover_Screen) | 1 | GT 覆盖板 |
| 钢螺丝 (screwSteel) | 2 | GT 螺丝成型 |
便携监测终端支持 3 种交互方式:
| 操作 | 行为 |
|---|---|
| 未绑定 + 右击 | 绑定当前玩家为拥有者,默认 HUD 模式 = 0(关闭) |
| 已绑定 + 右击 | 切换 HUD 模式:0 → 1 → 2 → 0 循环 |
| Shift + 右击 | 覆盖绑定为当前玩家(重置 HUD 模式 = 0) |
HUD 模式切换在客户端执行(aPlayer.worldObj.isRemote),同步到 WirelessMonitorHUD.setEnabled 与 setDisplayMode。
**首次使用提示:**未绑定时普通右击仅执行绑定,不切换 HUD 模式。绑定后再右击才会切换 HUD 显示。
HUD 支持 3 种模式,通过右击切换:
| 模式值 | 名称 | 显示示例 |
|---|---|---|
| 0 | 关闭 | 不显示 HUD |
| 1 | 常规计数 | 1,234,567 EU |
| 2 | 科学计数 | 1.23×10^6 EU |
HUD 显示三行信息(从上到下):
| 行 | Y 坐标 | 内容 | 字段 |
|---|---|---|---|
| 第 1 行(最上) | hudY - 24 | 实时 EU/t 状态 | cachedRealtimeEUTText |
| 第 2 行(中) | hudY - 12 | 平均 EU/t 状态 | cachedEUTText |
| 第 3 行(最下) | hudY | 电网能量 | cachedEUText |
平均 EU/t 与实时 EU/t 均附带 GT 功率等级显示,格式如 2A HV(2 安培 高压)。系统自动升档使电流 ≤ 4A,与无线能量监视器共享 GTTierUtil.formatGTPower 实现。
HUD 电网状态显示与无线能量监视器统一(v1.3.0 起):
-
size < 2:网络状态:计算中...(标题青色 §b + 计算中橙黄 §6) -
eut == 0:0 EU/t(静默)或 0 EU/t(长期静默,深灰 §8) -
0 < |eut| < 1:0 EU/t(<1EU) -
|eut| >= 1:正常显示(数值 + 电压等级)
| 参数 | 数值 | 说明 |
|---|---|---|
| HUD X 坐标 | screenWidth/2 + 91 + hudXOffset | 基于屏幕宽度与配置偏移 |
| HUD Y 坐标 | screenHeight - 54 - hudYOffset | 基于屏幕高度与配置偏移(正值上移) |
| HUD 更新间隔 | 100 ticks(5 秒) | 与无线能量监视器统一(v1.3.0 起) |
| 背包遍历间隔 | 20 ticks(1 秒) | 检测背包内是否有便携监测终端 |
| 半透明背景色 | 0x80000000 | 50% 透明黑 |
| 字体缩放 | Config.hudScale | 以 (hudX, hudY) 为原点缩放 |
| 数据集容量 | 61 | FIFO(1 首检 + 60 次 100t 检测 = 300s) |
| 长时重载阈值 | 10000 ms(10 秒真实时间) | 超过此阈值清空数据集触发冷启动 |
便携监测终端可放置于任意 Baubles 饰品栏(BaubleType.UNIVERSAL),扫描顺序如下:
- 主手(main hand)
- Baubles 饰品栏(按槽位顺序扫描)
- 背包槽位 0-35(按槽位顺序扫描)
未安装 Baubles 时安全降级:NoClassDefFoundError 被捕获,便携监测终端仍可在背包主槽位正常工作,仅失去饰品栏放置能力。
便携式 HUD 的数据集 不跨存档持久化(便携设备特性)。退出重进后数据集会重置,依靠 gap 检测与首次检测重建。
由于 getTotalWorldTime() 在玩家退出期间不推进,无法检测退出时长,故改用 System.currentTimeMillis() 真实时间戳进行 gap 检测:
- **长时重载(> 10000 ms 真实时间):**清空数据集,触发冷启动
- **短时卡顿豁免(≤ 10000 ms):**保留数据集,不清空
- 字段
lastUpdateRealTimeMs(long,不持久化)
**注意:**便携式 HUD 的
dataSet是 static 字段,不持久化到物品 NBT;longTermSilent字段也不持久化(随退出重置,符合便携式定位)。
检测 mc.theWorld.provider.dimensionId 变化时,仅重置 UI 状态字段,不清空 dataSet(保持历史数据维持 EU/t 连续性):
重置的字段:
-
syncedEuStr(同步的 EU 字符串) -
cachedEUText(缓存的电网能量文本) -
cachedEUTText(缓存的平均 EU/t 文本) -
cachedRealtimeEUTText(缓存的实时 EU/t 文本) -
lastUpdateTick(上次更新 tick)
便携监测终端的物品 NBT 结构如下:
| 键 | 类型 | 含义 |
|---|---|---|
| OwnerUUID | String | 拥有者玩家 UUID(绑定后写入) |
| Initialized | boolean | 是否已初始化拥有者 |
| OwnerName | String | 拥有者玩家名称(用于 tooltip 显示) |
| HUDMode | int | HUD 显示模式:0=关闭,1=常规计数,2=科学计数 |
**注意:**与无线能量监视器不同,便携监测终端不持久化测量历史数据(
measurementHistory)。HUD 历史数据是 static 字段,随玩家退出重置,依靠 gap 检测和首次检测重建数据集。