文本卡与时间卡

基本信息

属性 值
注册物品数 2
基类 shedar.mods.ic2.nuclearcontrol.items.ItemCardBase(extends Item implements IPanelDataSource)
最大堆叠 1(ItemCardBase.java:23)
注册位置 IC2NuclearControl.java:169-171

这两个卡片与传感器定位卡同属 ItemCardBase 家族,区别在于它们不查询机器,而是直接向面板输出文本。

Text Card(文本卡)

属性 值
注册名 IC2NuclearControl:ItemTextCard
类 shedar.mods.ic2.nuclearcontrol.items.ItemCardText
接口 implements IAdvancedCardSettings
英文显示名 Text Card
贴图名 cardText(items/ItemCardText.java:29 传入基类构造函数)

类定义证据:ItemCardText extends ItemCardBase implements IAdvancedCardSettings(items/ItemCardText.java:24)。实现 IAdvancedCardSettings 意味着它只能配合高级面板使用。

显示逻辑固定输出 10 行:从 line_9 倒序遍历到 line_0,跳过开头连续的空白行后逆序填入 PanelString 列表(items/ItemCardText.java:48-64)。也就是说文本内容存放在卡片的 line_0 … line_9 这 10 个 NBT 字符串键里。

编辑界面为 gui/GuiCardText.java,配合 gui/GuiTextArea.java 文本控件;容器为 containers/ContainerAdvancedInfoPanel.java。悬停时通过 CardHelper.getWrapper(itemStack).getTitle() 显示卡片标题(items/ItemCardText.java:67-73)。

Time Card(时间卡)

属性 值
注册名 IC2NuclearControl:ItemTimeCard
类 shedar.mods.ic2.nuclearcontrol.items.ItemTimeCard
接口 无附加接口
英文显示名 Time Card
贴图名 cardTime(items/ItemTimeCard.java:26)

类定义证据:ItemTimeCard extends ItemCardBase(items/ItemTimeCard.java:20)。

它输出单行时间文本,核心换算在 items/ItemTimeCard.java:45-63:

数值名 值 依据
卡片类型 UUID new UUID(0, 1) items/ItemTimeCard.java:22
时间基准 (worldTime + 6000) % 24000 items/ItemTimeCard.java:50
小时 time / 1000 items/ItemTimeCard.java:51
分钟 (time % 1000) * 6 / 100 items/ItemTimeCard.java:52
24 小时制开关常量 MODE_24H = 1 items/ItemTimeCard.java:23

+ 6000 的偏移把游戏内 0 时刻对齐到正午。24 小时制开启时(getSetting(MODE_24H) 为真)追加 AM/PM 后缀并对 12 取模、0 时补为 12(items/ItemTimeCard.java:54-58)。

唯一的面板设置项是 24 小时制开关,label 取自语言键 msg.nc.cb24h(items/ItemTimeCard.java:67-70)。

数值

数值名 值
Text Card 可存储行数 10(line_0 … line_9)
Time Card 输出行数 1(items/ItemTimeCard.java:47 的 new ArrayList<PanelString>(1))
两者最大堆叠 1

缺陷记录

ItemTimeCard.getStringData 通过 FMLClientHandler.instance().getClient().theWorld.getWorldTime() 直接取客户端世界时间(items/ItemTimeCard.java:50)。这意味着该卡片的数据生成只能在客户端执行。

相关条目