卡片(Card)
基本信息
本模组共注册 9 张卡片类物品(IC2NuclearControl.java:159,166-173),全部继承 ItemCardBase(items/ItemCardBase.java:19),实现 API 接口 IPanelDataSource。卡片插入信息屏槽 0 后,面板按 getStringData 返回的内容逐行渲染。
| 注册名 | 未本地化名 | 类 | 中文名 | 配方 |
|---|---|---|---|---|
ItemSensorLocationCard |
ItemSensorLocationCard |
ItemCardReactorSensorLocation |
反应堆传感定位卡片(zh_CN.lang:11) |
有 |
ItemEnergySensorLocationCard |
ItemEnergySensorLocationCard |
ItemCardEnergySensorLocation |
电力传感定位卡片(zh_CN.lang:12) |
有 |
ItemMultipleSensorLocationCard |
ItemMultipleSensorLocationCard |
ItemCardMultipleSensorLocation |
计数传感定位卡片(zh_CN.lang:13) |
有 |
ItemEnergyArrayLocationCard |
ItemEnergyArrayLocationCard |
ItemCardEnergyArrayLocation |
电力阵列定位卡片(zh_CN.lang:15) |
无 |
ItemLiquidArrayLocationCard |
ItemLiquidArrayLocationCard |
ItemCardLiquidArrayLocation |
流体阵列定位卡片(zh_CN.lang:23) |
无 |
Item55ReactorCard |
Item55ReactorCard |
ItemCard55Reactor |
流体反应堆传感定位卡片(zh_CN.lang:24) |
有 |
ItemTextCard |
ItemTextCard |
ItemCardText |
文本卡片(zh_CN.lang:20) |
有 |
ItemTimeCard |
ItemTimeCard |
ItemTimeCard |
时间卡片(zh_CN.lang:19) |
有 |
ItemPanelMemoryCard |
ItemPanelMemoryCard |
ItemPanelMemoryCard |
面板记忆卡(zh_CN.lang 无对应条目) |
无 |
「配方」列为「无」的项目,经 grep -c 在 recipes/RecipesNew.java、recipes/RecipesOld.java、crossmod/gregtech/GregtechRecipes.java 三个文件中检索,均为 0 命中 —— 即三套配方组都没有为其注册获取途径,只能通过 NEI 刷取或 /give。
功能
ItemCardBase 定义了卡片的统一契约(ItemCardBase.java:19-58):
| 方法 | 作用 |
|---|---|
update(TileEntity panel, ICardWrapper card, int range) |
面板侧更新数据 |
update(World world, ICardWrapper card, int range) |
远程(其他维度)更新数据 |
getCardType() |
返回卡片 UUID 类型标识 |
getStringData(DisplaySettingHelper, ICardWrapper, boolean) |
返回要渲染的文本行 |
getSettingsList() |
返回该卡片支持的显示设置项 |
isDamageable() 被覆写为返回 false(ItemCardBase.java:30),即卡片不会损坏。
数值:卡片状态
update 系列方法返回 CardState 枚举(api/CardState.java:11-36),面板据此决定是否调用 getStringData:
| 常量 | index | 含义 |
|---|---|---|
OK |
1 | 数据齐备,可以显示 |
NO_TARGET |
2 | 目标方块不存在或类型不合法 |
OUT_OF_RANGE |
3 | 目标超出范围 |
INVALID_CARD |
4 | 卡片缺少必需字段(注释提示可能由 NEI 生成) |
CUSTOM_ERROR |
5 | 预留 |
仅 OK 与 CUSTOM_ERROR 会调用 getStringData(CardState.java:5-7),其余显示标准错误消息。fromInteger 可由存档中的整数值反查枚举(CardState.java:48-61)。
合成配方
6 张卡片由 IC2 电子电路无序合成(RecipesNew.java:218-229):
| 产物 | 输入 |
|---|---|
| 反应堆传感定位卡片 | IC2 electronicCircuit |
| 流体反应堆传感定位卡片 | IC2 electronicCircuit |
| 电力传感定位卡片 | IC2 electronicCircuit |
| 文本卡片 | IC2 electronicCircuit |
| 时间卡片 | IC2 electronicCircuit |
| 计数传感定位卡片 | IC2 electronicCircuit |
文本卡片另有有序配方(RecipesNew.java:193-196):
C
PFP
C
| 字符 | 物品 |
|---|---|
P |
Items.paper(纸) |
C |
circuitBasic(基础电路) |
F |
IC2 insulatedTinCableItem(绝缘锡电缆) |
时间卡片另有有序配方(RecipesNew.java:198-201):
C
PWP
C
| 字符 | 物品 |
|---|---|
C |
Items.clock(时钟) |
P |
Items.paper(纸) |
W |
IC2 insulatedTinCableItem |
面板记忆卡
ItemPanelMemoryCard(items/ItemPanelMemoryCard.java:21)是一张配置复制卡,不是数据卡:它用 addInformation(ItemPanelMemoryCard.java:32)显示所存信息,用 onItemUseFirst(ItemPanelMemoryCard.java:52)把记忆卡与信息屏之间来回读写。它不继承 ItemCardBase,因此不是 IPanelDataSource,无法直接插入面板渲染数据。
相关条目
- 信息屏体系 - 卡片的使用场景
- 传感工具 - 右键目标生成定位卡片
- Nuclear Control API -
IPanelDataSource与CardState契约