温度计 / 数码温度计

基本信息

属性 温度计 数码温度计
注册名 ItemToolThermometer(IC2NuclearControl.java:160) ItemToolDigitalThermometer(IC2NuclearControl.java:161)
未本地化名 ItemToolThermometer(IC2NuclearControl.java:135) ItemToolDigitalThermometer(IC2NuclearControl.java:136-137)
类 items/ItemToolThermometer.java items/ItemToolDigitalThermometer.java
继承 net.minecraft.item.Item 继承 ItemToolThermometer,实现 IElectricItem(ItemToolDigitalThermometer.java:19)
构造参数 无 (tier, ratio, transfer),实际传入 (1, 80, 80)(IC2NuclearControl.java:136)
最大耐久 102(ItemToolThermometer.java:20) 101(ItemToolDigitalThermometer.java:27)
最大堆叠 1(ItemToolThermometer.java:21) 继承 1
创造标签 IC2NuclearControl.tabIC2NC(ItemToolThermometer.java:22) 继承
贴图 thermometer(ItemToolThermometer.java:23) thermometerDigital(ItemToolDigitalThermometer.java:28)
中文名 温度计(zh_CN.lang:5) 数码温度计(zh_CN.lang:6)

功能

两者都通过右键反应堆方块读取热量并以聊天栏消息反馈。共用逻辑在 ItemToolThermometer.onItemUseFirst(ItemToolThermometer.java:28-59),仅服务端执行。

反应堆查找顺序(ItemToolThermometer.java:39-49):

  1. NuclearHelper.getReactorAt(world, x, y, z) —— 点击处的反应堆
  2. 找不到则查反应堆舱 getReactorChamberAt,取舱内反应堆
  3. 仍找不到则用 ItemCard55Reactor.getReactor 以 5×5 方式解析

三者都失败时不消耗耐久、不发消息(ItemToolThermometer.java:39-50,57-58)。

数值:能量与耐久

这是两者唯一的实质差异:

项目 温度计 数码温度计
每次读取的「耐久」参数 2(canTakeDamage(itemstack, 2),ItemToolThermometer.java:33) 2,判定时乘 50 → 100 EU
判定方式 直接返回 true ElectricItem.manager.discharge(..., i*50, MAX_VALUE, true, false, true) == i*50(ItemToolDigitalThermometer.java:32-35)
实际扣除 damageItem(10, player) —— 10 点耐久(ItemToolThermometer.java:64-66) ElectricItem.manager.use(itemstack, 50 * i, player) —— 50 EU(ItemToolDigitalThermometer.java:45-47)
能否充电 不适用 canProvideEnergy 返回 false(ItemToolDigitalThermometer.java:49-52)
电网等级 / 比例 / 传输 — 1 / 80 / 80(IC2NuclearControl.java:136、ItemToolDigitalThermometer.java:23-29)

注意:数码温度计虽然实现 IElectricItem 且 getChargedItem 返回自身(ItemToolDigitalThermometer.java:57-59),但 canProvideEnergy 为 false,意味着它不能被电池充电,每次使用直接消耗 50 EU。

数值:消息内容

物品 聊天消息格式 引用
温度计 Thermo:<热量> ItemToolThermometer.java:60-63
数码温度计 ThermoDigital:<热量>:<50% 阈值>:<85% 阈值> ItemToolDigitalThermometer.java:38-43

数码温度计额外给出反应堆最大热量的 50% 与 85% 两个参考值((maxHeat * 50) / 100 与 (maxHeat * 85) / 100),用于判断当前热量处于何种警戒区间。

合成配方

温度计(RecipesNew.java:116-119):

IG 
GWG
 GG
字符 物品
I plateIron(铁板)
G blockGlass(玻璃)
W IC2 waterCell(水单元)

数码温度计(RecipesNew.java:122-125):

RI 
ITI
 IP
字符 物品
R itemRubber(橡胶)
T 温度计
I plateIron(铁板)
P IC2 powerunitsmall(小型电力单位)

相关条目