Skip to content

Network Info Panel_CN

MIAOKATZE edited this page Jul 12, 2026 · 3 revisions

网络信息屏与拓展屏

1. 方块简介

网络信息屏是 GTSWN 的多方块显示面板,由主屏与拓展屏组成,可拼接成 任意矩形尺寸 的连续屏幕。可视化无线电网能量趋势,支持 5 分钟 / 1 小时 / 8 小时 / 24 小时 多时间窗口。

![网络信息屏外观](images/Network Info Panel_CN.png)

![网络全天候检测示意图](images/Network Info Panel_L_CN.png)

  • 多方块显示面板,主屏 + 拓展屏可拼接成任意矩形尺寸
  • 4 时间窗口:5 分钟 / 1 小时 / 8 小时 / 24 小时
  • 采用 Fritsch-Carlson 单调三次 Hermite 样条曲线 平滑渲染(v1.5.10 替代 Catmull-Rom)
  • 支持按玩家 UUID 跨多屏数据共享
  • 3 个标签页:EU 网络 / AE 走势图 / AE 实时监控
  • 可配置屏幕背景色、走势线平滑度、显示模式等
  • 数据集持久化,方块破坏不立即丢失

2. 合成配方

网络信息屏

在工作台中按十字结构合成(中心为无线能量监视器):

槽位 第 1 列 第 2 列 第 3 列
第 1 行 LV 传感器 玻璃 LV 传感器
第 2 行 玻璃 无线能量监视器 玻璃
第 3 行 LV 传感器 玻璃 LV 传感器

材料清单:LV 传感器 ×4 + 玻璃 ×4 + 无线能量监视器 ×1

网络信息拓展屏

在工作台中按十字结构合成(中心为电脑屏幕覆盖板):

槽位 第 1 列 第 2 列 第 3 列
第 1 行 LV 接收器 玻璃 LV 接收器
第 2 行 玻璃 电脑屏幕覆盖板 玻璃
第 3 行 LV 接收器 玻璃 LV 接收器

材料清单:LV 接收器 ×4 + 玻璃 ×4 + 电脑屏幕覆盖板 ×1(输出 2 个拓展屏

**玻璃通配符:**配方使用 Blocks.glass 的 meta=32767 通配符,接受 普通玻璃与染色玻璃

3. 4 时间窗口

网络信息屏支持 4 个时间窗口,每个窗口均为 61 点 FIFO:

窗口 样品点数 采样间隔 总时长 说明
5 分钟 61 100 ticks(5 秒) 300 秒 原始采样
1 小时 61 600 ticks(30 秒) 1800 秒 由 5m 均值流入
8 小时 61 4800 ticks(240 秒) 14400 秒 由 1h 均值流入
24 小时 61 14400 ticks(720 秒) 43200 秒 由 8h 均值流入

**注意:**1h / 8h / 24h 窗口通过 流入计数链 触发,并非独立采样。每个窗口的样品点取自上一级窗口的最近 N 点均值。

4. 流入计数链

4 个时间窗口通过嵌套计数链触发,每一级窗口的样本由上一级窗口的均值计算得出:

  • **5m → 1h:**每 12 个 5m 样本触发 1 个 1h 样本(1h 样本的 eut/rate 取最近 12 个 5m 点均值)
  • **1h → 8h:**每 8 个 1h 样本触发 1 个 8h 样本(8h 样本的 eut/rate 取最近 8 个 1h 点均值)
  • **8h → 24h:**每 3 个 8h 样本触发 1 个 24h 样本(24h 样本的 eut/rate 取最近 3 个 8h 点均值)

第 12 个 5m 点同时进入 5m 集和 1h 集(5m 集不跳过任何采样点,保持 61 个连续 5s 点)。这保证了 5m 集的连续性,同时通过计数链自动驱动更长时间窗口的采样。

5. 样条曲线

走势线采用 Fritsch-Carlson 单调三次 Hermite 样条(v1.5.10 替代 Catmull-Rom):

  • 算法:monotoneCubicPath 方法实现 Fritsch-Carlson 单调三次 Hermite 样条
  • **单调性:**保持单调性、避免过冲(移除 v1.5.9 局部包络限制)
  • **端点处理:**首尾导数自然,不做 [0,1] 硬截断
  • **平滑度参数:**0-12
smoothing 值 段数 说明
0 1 段 线性(无平滑)
1-12 smoothing × 2 + 2 段(4-26 段) 平滑曲线,段数随平滑度增加

6. 显示模式

信息屏支持 3 种显示模式(v1.4.14 引入,v1.5.10 扩展为三态):

模式值 名称 显示示例
0 常规计数 1,234,567
1 科学计数 1.23E6
2 千位计数 1.23K

**千位模式细节(v1.5.13):**主显示调用点采用 2 位小数(如 1.23K、999.00);坐标轴 Y 轴刻度标签保持无小数(如 1K),避免轴标签过长;负数格式统一为前缀负号(-1.23K)。科学计数模式下小值(< 10000.0)自动 fallback 为常规显示。

7. 多屏共享

数据集绑定到 玩家 UUID,同一玩家的所有信息屏共享同一份数据:

  • **UUID 绑定:**数据集以 ownerUUID 为 key 存储于 WorldSavedData
  • **多屏一致:**多个屏幕显示相同数据
  • 采样锁:tryAcquireSampleLock 全局采样锁防止重复采样
  • **反写保证:**采样完成后用 dataSet.newest() 反写 cachedEu/cachedEut,保证多屏数据一致

**注意:**AE 监控数据按方块坐标(dimensionId:x:y:z)隔离,与 EU 数据集(按 ownerUUID)解耦。每个信息屏独立维护自己的 AE 监控数据。

8. 关键参数表

参数 数值 说明
GUI 尺寸 430 × 285 像素 配置界面窗口大小
采样间隔 100 ticks(5 秒) SAMPLE_INTERVAL_TICKS
gap 检测 200 ticks MAX_CONTINUOUS_GAP_TICKS(断点判定)
数据集容量 61 每窗口 FIFO 容量
拓展屏检测范围 16 格 rebuildNearbyScreens 扫描半径
WorldSavedData gtswn_network_info_data EU 数据持久化名
AE WorldSavedData gtswn_ae_monitor_data AE 监控数据持久化名

9. 配置项

网络信息屏的所有配置项(含默认值与范围):

配置项 类型 / 默认值 范围 说明
trendLineSmoothing int = 2 0-12 样条平滑度
trendLineThickness int = 3 - 走势线宽度(glLineWidth)
displayMode int = 0 0-2 显示模式(0=常规 / 1=科学 / 2=千位)
chartBorderThickness int = 3 1-8 图表边框宽度
chartBackgroundColor String = "" - 图表背景色(空=不绘制背景填充)
screenBackgroundColor String - 屏幕背景色(空=不绘制背景填充)
briefRatio int = 28 10-80 简报字体比例(getBriefFontScale()=briefRatio/20.0)
trackingWindow int 0-3 时间窗口(0=5m / 1=1h / 2=8h / 3=24h)
showBriefEnergy boolean - 简报能量开关
showBriefStatus boolean - 简报状态开关
showChartEnergy boolean - 图表能量开关
showChartStatus boolean - 图表状态开关
energyAxisMin / Max String - 能量 Y 轴范围(空=自动,含 10% padding)
eutAxisMin / Max String - EU/t Y 轴范围(空=自动,含 10% padding)

10. 拓展屏拼接

拓展屏可自动附着到相邻主屏,拼接成任意矩形尺寸的连续屏幕:

  • 最大子矩形检测:findLargestFilledRect() 找含 core 的最大全填充子矩形
  • **自动附着:**拓展屏放置时自动检测相邻主屏并加入其屏幕组
  • **连接状态贴图:**16 种连接状态贴图 screen_connected_0.png ~ screen_connected_15.png,根据相邻方块自动选择
  • **L/U 形外围 detach:**非矩形外围拓展屏会被自动脱离
  • **breakBlock 触发重建:**破坏任意屏幕方块时,相邻屏幕重新检测拼接

11. 持久化

WorldSavedData

  • EU 数据:gtswn_network_info_data(perWorldStorage),Map<ownerUUID, NetworkInfoDataSet>
  • AE 监控数据:gtswn_ae_monitor_data(perWorldStorage),Map<coordinateKey, AEMonitorDataSet>

TileEntity NBT

主屏 TileEntity 持久化以下内容:

  • UI 配置(displayMode、trackingWindow、各可见性开关、轴范围、平滑度等)
  • ownerUUID(拥有者 UUID)
  • lastSampleTick(上次采样 tick)
  • eutDataSet(局部 EU/t 计算数据集)
  • screen(多方块屏几何信息)
  • syncData(同步数据)
  • AE 相关字段(currentTab、chartItem、chartFluid、monitoredItems、monitoredFluids、lastAESampleTick)

物品 NBT(writePlacementData)

破坏方块时,物品保留以下数据供重新放置时恢复:

  • ownerUUID + ownerName
  • lastSampleTick(EU 采样时间戳)
  • lastAESampleTick(AE 采样时间戳)
  • eutMeasurementHistory(EU/t 测量历史)
  • chartConfig(图表配置)

12. 3 个标签页

信息屏 GUI 顶部有 3 个标签页按钮(ID 100/101/102),切换不同显示模式:

标签页 名称 内容
标签页 1 EU 网络 EU 走势图与简报(5m/1h/8h/24h 时间窗口切换、走势线、坐标轴、简报区)
标签页 2 AE 走势图 绑定 AE 物品/流体,双 Y 轴趋势图(详见 04 模块
标签页 3 AE 实时监控 多物品 AE 监控列表,300s 均值(详见 05 模块

右键配置

手持物品右键信息屏可快速配置(v1.5.1 起):

  • EU 标签页 + 任意物品:打开 GUI(原逻辑)
  • AE 走势图标签页 + 含流体容器:绑定流体
  • AE 走势图标签页 + 普通物品:绑定物品
  • AE 实时监控标签页 + 含流体容器:添加/移除流体监视
  • AE 实时监控标签页 + 普通物品:添加/移除物品监视

Clone this wiki locally