Skip to content

Portable Monitor_CN

MIAOKATZE edited this page Jul 12, 2026 · 2 revisions

便携无线监测终端

1. 物品简介

便携无线监测终端是一个手持设备,放入背包(含任意 Baubles 饰品栏)后自动显示 HUD,实时显示无线电网能量、EU/t 变化率与 GT 功率等级。无需放置任何方块

便携监测终端 HUD - 充电状态

便携监测终端 HUD - 放电状态

  • 手持设备,背包内(含 Baubles 饰品栏)自动显示 HUD
  • 实时显示无线电网能量、EU/t 变化率、GT 功率等级
  • 无需放置任何方块
  • 通过 C→S→C 网络包同步,在单人世界和专用服务器中均可正常使用
  • HUD 状态四分支与无线能量监视器统一(计算中 / 静默 / <1EU / 正常)
  • 不可堆叠(setMaxStackSize(1))

2. 合成配方

在工作台中按以下 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. 交互逻辑

便携监测终端支持 3 种交互方式:

操作 行为
未绑定 + 右击 绑定当前玩家为拥有者,默认 HUD 模式 = 0(关闭)
已绑定 + 右击 切换 HUD 模式:0 → 1 → 2 → 0 循环
Shift + 右击 覆盖绑定为当前玩家(重置 HUD 模式 = 0)

HUD 模式切换在客户端执行(aPlayer.worldObj.isRemote),同步到 WirelessMonitorHUD.setEnabledsetDisplayMode

**首次使用提示:**未绑定时普通右击仅执行绑定,不切换 HUD 模式。绑定后再右击才会切换 HUD 显示。

4. HUD 模式

HUD 支持 3 种模式,通过右击切换:

模式值 名称 显示示例
0 关闭 不显示 HUD
1 常规计数 1,234,567 EU
2 科学计数 1.23×10^6 EU

5. HUD 内容

HUD 显示三行信息(从上到下):

Y 坐标 内容 字段
第 1 行(最上) hudY - 24 实时 EU/t 状态 cachedRealtimeEUTText
第 2 行(中) hudY - 12 平均 EU/t 状态 cachedEUTText
第 3 行(最下) hudY 电网能量 cachedEUText

GT 功率等级显示

平均 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:正常显示(数值 + 电压等级)

6. 关键参数表

参数 数值 说明
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 秒真实时间) 超过此阈值清空数据集触发冷启动

7. Baubles 饰品栏支持

便携监测终端可放置于任意 Baubles 饰品栏(BaubleType.UNIVERSAL),扫描顺序如下:

  1. 主手(main hand)
  2. Baubles 饰品栏(按槽位顺序扫描)
  3. 背包槽位 0-35(按槽位顺序扫描)

未安装 Baubles 时安全降级:NoClassDefFoundError 被捕获,便携监测终端仍可在背包主槽位正常工作,仅失去饰品栏放置能力。

8. 重载与重进处理

便携式 HUD 的数据集 不跨存档持久化(便携设备特性)。退出重进后数据集会重置,依靠 gap 检测与首次检测重建。

真实时间 gap 检测

由于 getTotalWorldTime() 在玩家退出期间不推进,无法检测退出时长,故改用 System.currentTimeMillis() 真实时间戳进行 gap 检测:

  • **长时重载(> 10000 ms 真实时间):**清空数据集,触发冷启动
  • **短时卡顿豁免(≤ 10000 ms):**保留数据集,不清空
  • 字段 lastUpdateRealTimeMs(long,不持久化)

**注意:**便携式 HUD 的 dataSet 是 static 字段,不持久化到物品 NBT;longTermSilent 字段也不持久化(随退出重置,符合便携式定位)。

9. 世界切换处理

检测 mc.theWorld.provider.dimensionId 变化时,仅重置 UI 状态字段,不清空 dataSet(保持历史数据维持 EU/t 连续性):

重置的字段:

  • syncedEuStr(同步的 EU 字符串)
  • cachedEUText(缓存的电网能量文本)
  • cachedEUTText(缓存的平均 EU/t 文本)
  • cachedRealtimeEUTText(缓存的实时 EU/t 文本)
  • lastUpdateTick(上次更新 tick)

10. NBT 结构

便携监测终端的物品 NBT 结构如下:

类型 含义
OwnerUUID String 拥有者玩家 UUID(绑定后写入)
Initialized boolean 是否已初始化拥有者
OwnerName String 拥有者玩家名称(用于 tooltip 显示)
HUDMode int HUD 显示模式:0=关闭,1=常规计数,2=科学计数

**注意:**与无线能量监视器不同,便携监测终端不持久化测量历史数据(measurementHistory)。HUD 历史数据是 static 字段,随玩家退出重置,依靠 gap 检测和首次检测重建数据集。

Clone this wiki locally