信息屏体系
基本信息
| 属性 | 值 |
|---|---|
| 方块 | 全部为主方块 IC2NuclearControl:blockNuclearControlMain 的不同 metadata |
| metadata 4 | 工业信息屏(DAMAGE_INFO_PANEL) |
| metadata 5 | 工业信息屏扩展(DAMAGE_INFO_PANEL_EXTENDER) |
| metadata 9 | 高级工业信息屏(DAMAGE_ADVANCED_PANEL) |
| metadata 10 | 高级工业信息屏扩展(DAMAGE_ADVANCED_EXTENDER) |
| 常量来源 | utils/BlockDamages.java:11-12,16-17 |
| 中文名 | zh_CN.lang:39-40,41-42 |
| 需依附方块 | 全部否(InfoPanel.java:54-56、InfoPanelExtender.java:33-35、AdvancedInfoPanel.java:44-46、AdvancedInfoPanelExtender.java:42-44) |
功能
信息屏是本模组的核心输出设备:把插入的传感卡片数据渲染成屏幕上的一行行文字。整套体系由「面板(Panel)+ 扩展(Extender)」两类方块构成。
- 面板(metadata 4 / 9):自带屏幕,插入卡片,渲染数据
- 扩展(metadata 5 / 10):无屏幕(
hasGui()返回 false),仅作为面板的延伸部分扩大显示面积,必须依附在面板上并共享同一Screen
扩展方块的 coreX/coreY/coreZ 指向所属面板;它通过 getScreen() 从核心面板取得同一个 Screen 实例(TileEntityInfoPanelExtender.java:121-123),因此面板与扩展渲染的是同一张连续画面。ScreenManager 负责在服务端维护所有已注册的屏幕(panel/ScreenManager.java:21),提供 registerInfoPanel / registerInfoPanelExtender / unregisterScreenPart / clearWorld 等生命周期方法(ScreenManager.java:165,188,206,256)。
对照表
| 属性 | 工业信息屏 (4) | 扩展 (5) | 高级工业信息屏 (9) | 高级扩展 (10) |
|---|---|---|---|---|
| TileEntity | TileEntityInfoPanel |
TileEntityInfoPanelExtender |
TileEntityAdvancedInfoPanel |
TileEntityAdvancedInfoPanelExtender |
| TE 注册名 | IC2NCInfoPanel |
IC2NCInfoPanelExtender |
IC2NCAdvancedInfoPanel |
IC2NCAdvancedInfoPanelExtender |
| 卡片槽位数 | 3 | 0 | 3 | 0 |
| 有 GUI | 是 | 否 | 是 | 否 |
| 屏幕 | 有 | 无(借用核心) | 有 | 无(借用核心) |
TE 注册名来自 CommonProxy.java:36-39。工业信息屏库存 3 格 —— 「卡片 + 范围升级 + 颜色/网页升级」(TileEntityInfoPanel.java:356-358),槽位常量 SLOT_CARD=0、SLOT_UPGRADE_RANGE=1、SLOT_UPGRADE_COLOR=2、SLOT_UPGRADE_WEB=2(TileEntityInfoPanel.java:64-67)。高级信息屏库存 4 格,注释为「3 cards + range/web upgrade」(TileEntityAdvancedInfoPanel.java:80-81),卡片槽 SLOT_CARD1/2/3 = 0/1/2(TileEntityAdvancedInfoPanel.java:30-32)。
数值
| 数值名 | 值 | 引用 |
|---|---|---|
| 面板定位范围 | 8 | LOCATION_RANGE(TileEntityInfoPanel.java:67) |
| 高级屏默认厚度 | 16 | thickness = 16(TileEntityAdvancedInfoPanel.java:83) |
| 高级屏默认着色 | 开启 | colored = true(TileEntityAdvancedInfoPanel.java:82) |
| 可选文本颜色数 | 15 | COLORS_HEX 数组长度(TileEntityInfoPanel.java:57-58) |
| 高级屏碰撞箱上限 | 0.98 | 厚度为 16 时的 bounds[4](AdvancedInfoPanel.java:68-70) |
| 高级屏其他厚度碰撞箱 | thickness / 16 |
bounds[4] = Math.max(thickness, 1) / 16F(AdvancedInfoPanel.java:65-67) |
| 网络同步字段(基础面板) | 10 个 | powered/facing/rotation/card/showLabels/colorBackground/colorText/colored/screenData/isWeb(TileEntityInfoPanel.java:360-372) |
高级信息屏特有控制
高级信息屏(metadata 9)额外实现了客户端点击事件(TileEntityAdvancedInfoPanel.java:36-46):
| 常量 | 值 | 含义 |
|---|---|---|
POWER_REDSTONE |
0 | 切换为红石供电 |
POWER_INVERTED |
1 | 切换为反转红石 |
POWER_ON |
2 | 常亮 |
POWER_OFF |
3 | 常灭 |
TRANSPARENCY_CHANGED |
6 | 透明度切换 |
ROTATE_LEFT |
7 | 画面左转 |
ROTATE_RIGHT |
8 | 画面右转 |
OFFSET_THICKNESS |
100 | 厚度偏移基数 |
OFFSET_ROTATE_HOR |
200 | 水平旋转偏移基数 |
OFFSET_ROTATE_VERT |
300 | 垂直旋转偏移基数 |
交互
| 触发 | 行为 |
|---|---|
| 右键面板 | 打开 GuiInfoPanel / GuiAdvancedInfoPanel(InfoPanel.java:70-76、AdvancedInfoPanel.java:77-85) |
| 右键扩展 | 无 GUI,直接返回(hasGui() 为 false) |
| 扳手 | 面板支持定向与拆除(实现 IWrenchable,TileEntityInfoPanel.java:56) |
| 红石 | 实现 IRedstoneConsumer(TileEntityInfoPanel.java:55),setPowered / getPowered(TileEntityInfoPanel.java:163,172) |
| 贴图换色 | 实现 ITextureHelper(TileEntityInfoPanel.java:55),颜色索引 I_PANEL_BACKGROUND = 6(TileEntityInfoPanel.java:60) |
合成配方
| 产物 | 形状 | 材料 | 引用 |
|---|---|---|---|
| 工业信息屏 (4) | PPP / CMC / IRI |
P=paneGlassLime, C=circuitBasic, I=dyeBlack, R=dustRedstone, M=IC2 machine |
RecipesNew.java:83-86 |
| 工业信息屏扩展 (5) | PPP / WRW / WWW |
P=paneGlassLime, R=dustRedstone, W=plankWood |
RecipesNew.java:92-94 |
| 高级工业信息屏 (9) | PPP / 1I2 / CAC |
P=paneGlassLime, I=工业信息屏, 1=范围升级, 2=颜色升级, A=circuitAdvanced, C=IC2 carbonPlate |
RecipesNew.java:100-105 |
| 高级工业信息屏扩展 (10) | PPP / CEC / CMC |
P=paneGlassLime, M=IC2 machine, E=信息屏扩展, C=IC2 carbonPlate |
RecipesNew.java:111-114 |