Skip to content

ME Quantum Network_CN

MIAOKATZE edited this page Jul 30, 2026 · 1 revision

ME 量子网络(量子终端 + 量子节点)

1. 模块简介

ME 网络量子终端(物品)与 ME 网络量子节点(方块)为 AE2 网络提供「量子化」远程接入机制:

  • 量子终端:将正常运行(成型 + 供能 + 激活)的 ME 控制器整结构量子化并绑定其网络;查看网络状态;放置量子节点。
  • 量子节点:无频道上限(DENSE 容量 32 频道/连接)的远程接入点,经虚拟 GridConnection 桥接锚点控制器,相邻设备直接入网。
ME 网络量子终端 ME 网络量子节点

⚠️ 量子终端与量子节点均无合成配方,通过创造模式获取;量子节点仅能由已绑定终端右击空地放置。

2. 获取方式

物品/方块 获取方式
ME 网络量子终端 创造模式物品栏 / /give 命令
ME 网络量子节点 手持已绑定终端右击空地放置(方块本身无物品形态掉落,Shift+右击销毁不返回)

3. 量子终端交互逻辑(五手势)

量子终端支持 5 种交互手势:

手势 行为
右击控制器 量子化整结构并绑定(已量子化则改绑到该控制器网络)
Shift+右击控制器 取消量子化并解绑
右击空地(已绑定) 放置量子节点
Shift+右击量子节点 销毁节点(无掉落)
Shift+右击空气 打开终端 GUI

首次使用提示:右击控制器会同时完成量子化与绑定;Shift+右击控制器会同时取消量子化并解绑,且不会打开 GUI(GUI 有且仅在 Shift+右击空气时打开)。

量子化语义

  • 整结构洪泛:右击一个控制器时,从该控制器起做洪泛遍历,将整结构内所有 TileController 入册为「量子化」。
  • 连接过滤白名单:量子化后控制器间的连接会过滤掉非白名单方块;致密能源元件(TileEnergyCell / TileCreativeEnergyCell 等)放行,避免断供。
  • 自动合并:新放置的控制器若与已量子化结构相连,自动并入量子化集合。

4. 量子终端 GUI

v1.6.9 起精简为紧凑布局(120×92),仅显示三类核心信息:

内容 数据来源
标题 「ME网络量子终端」 lang gui.quantum.title
控制器坐标 锚点 X, Y, Z NBT QT_AnchorX/Y/Z
维度 维度 ID NBT QT_AnchorDim
量子节点数 网络中量子节点方块数 QuantumNetworkData.quantumNodeCount
频道 used / total (pct%) usedChannels / totalChannels

在线/离线状态

  • 在线态:锚点控制器可达,所有数据实时显示。
  • 离线态:锚点不可达时,控制器坐标 + 维度仍显示,节点数与频道数硬编码为 0 / 0 (0%),末行红色「网络离线(锚点不可达)」。
  • 等待态:首包未到达时显示「...」。

频道口径

  • totalChannels(总频道数)= (n × 6 − sharedFaces) × 32
    • n = 量子化控制器方块数
    • sharedFaces = 相邻控制器共享面数
    • 32 = DENSE 线缆单连接频道容量
  • usedChannels(已用频道数)= 遍历量子节点取各连接 usedChannels 的 max 求和(max 口径拓扑上正确,桥接连接 usedChannels 恒≥邻接连接)

GUI 行为

  • 轮询:每 10 tick 发 C→S 请求包,服务端装配后回 S→C 快照
  • 缓存:绑定锚点一致则保留上次快照,重开即显,≤10t 自动刷新
  • 不暂停游戏:覆写 doesGuiPauseGame() 返回 false(v1.6.7 修复,单人模式不再卡死)

5. 量子节点

远程桥接

量子节点 TE(TileEntityNetworkQuantumNode)实现 IGridProxyable,每 20 tick 维护一次连接:

  1. 解析锚点坐标 → 取锚点控制器
  2. 校验锚点仍量子化
  3. createGridConnection 建立虚拟桥接到锚点 grid
  4. 相邻 AE2 设备经节点邻接入网(普通 AE 连接,走桥接通道)

离线原因

锚点不可达时节点分级离线,聊天提示:

原因 提示
锚点控制器未加载/被拆 节点离线(锚点不可达)
跨维度 暂不支持跨维度桥接,节点离线
锚点未量子化 锚点控制器未量子化

节点销毁

  • 挖掘不掉落getDrops 返回空,canSilkHarvest=false
  • Shift+右击销毁:手持量子终端 Shift+右击节点 → setBlockToAir(无掉落)
  • 硬度:方块 hardness=1000(挖掘速度等效降至 1/1000)

6. 过载保护

95% 预警

每个量子节点每 20 tick 检查一次:

  • 取锚点 grid → 计算 totalChannels / usedChannels / 本节点带入的 nodeUsed
  • nodeUsed > lastNodeUsed && used × 100 >= total × 95 && used < total 时,向节点放置者发送聊天警告

过载爆炸

  • used > total 时,逐个 setBlockToAir 销毁所有量子化控制器
  • 锚点位置触发 createExplosion(null, x+0.5, y+0.5, z+0.5, 4.0F, true) TNT 级爆炸
  • 爆炸去重:1.7.10 服务端单线程,第一个节点销毁控制器后 TileController.invalidate 同步触发所有节点连接断开,后续节点跳过

频道公式

字段 公式 说明
totalChannels (n × 6 − sharedFaces) × 32 n=控制器方块数,sharedFaces=共享面数,32=DENSE 容量
usedChannels Σ max(节点连接 usedChannels) max 口径,遍历所有量子节点

7. 量子化控制器强化

量子化后的 ME 控制器获得等效防护:

属性 数值 实现方式
等效硬度 1000 BreakSpeed 事件:newSpeed × (hardness/1000)
等效防爆 400000 ExplosionEvent.Detonate:移除受影响方块
扳下保护 Shift+右击仍 cancel QuantumControllerEventHandler 拦截
网络工具放行 持 INetworkToolItem 普通右击放行 打开 AE2 原生 GUI_NETWORK_STATUS

8. WAILA 集成

安装 WAILA 后,量子节点显示在线状态:

  • §a 设备在线:节点已桥接
  • §c 设备离线:节点未连接

离线原因仍由右键聊天(chat.quantum.* 键系)提供,WAILA 不显示原因细节。

9. 配置项

配置项 类型 / 默认值 说明
quantumNodeIdlePowerUsage double = 10.0 量子节点待机 AE/t 功耗(category: ae2)

10. 关键参数表

参数 数值 说明
GUI 尺寸 120 × 92 v1.6.9 紧凑布局
GUI 轮询间隔 10 tick C→S 请求频率
节点维护间隔 20 tick 重连 / 过载检查
DENSE 容量 32 频道/连接 量子节点单连接上限
节点硬度 1000 挖掘速度等效 1/1000
控制器等效防爆 400000 爆炸事件移除
WorldSavedData gtswn_quantum_controllers 量子化坐标集持久化
网络包 disc5 PacketRequestQuantumTerminalData C→S 请求
网络包 disc6 PacketSyncQuantumTerminalData S→C 快照

11. NBT 结构

量子终端物品 NBT

类型 含义
QT_Bound boolean 是否已绑定
QT_BoundName String 绑定网络名
QT_AnchorDim int 锚点维度 ID
QT_AnchorX int 锚点 X 坐标
QT_AnchorY int 锚点 Y 坐标
QT_AnchorZ int 锚点 Z 坐标

量子节点 TE NBT

  • 锚点坐标 + 维度
  • 连接状态(isLinked
  • 放置者 playerID(用于 95% 预警反查)
  • lastNodeUsedChannels(跟踪本节点频道增长)

12. 服务器多人兼容性

  • 不同终端可绑定同一个控制器(终端 NBT 只存锚点坐标)
  • 不同玩家放置的量子节点独立连接到同一个锚点控制器
  • 95% 预警各自独立发给自己 placer(通过 GridNode.getPlayerID() 反查)
  • 爆炸会影响所有连接的量子节点(控制器消失,所有桥接断开)

13. 关键文件

文件 职责
common/items/ItemNetworkQuantumTerminal.java 终端物品:五手势 + NBT
common/quantum/QuantumControllerRegistry.java WorldSavedData:量子化坐标集 + 洪泛
common/quantum/QuantumControllerEventHandler.java 5 事件:拦截 / 硬度 / 防爆 / 重算 / 巡检
common/quantum/QuantumNetworkData.java 服务端统计装配 POJO
common/block/BlockNetworkQuantumNode.java 节点方块
common/tile/TileEntityNetworkQuantumNode.java 桥接 TE + 过载检查
client/gui/GuiQuantumTerminal.java 终端 GUI
network/PacketRequestQuantumTerminalData.java C→S 请求包
network/PacketSyncQuantumTerminalData.java S→C 快照包

Clone this wiki locally