TileEntityOxygenDetector(氧气检测器)
事实基准:
/Users/evlos/a/mirror/Galacticraft(master,minecraftVersion = 1.7.10)逐行读源码。
注册信息
| 属性 | 值 | 来源 |
|---|---|---|
| TileEntity 注册名 | Oxygen Detector |
core/GalacticraftCore.java:720 |
| 所属 modid | GalacticraftCore |
core/Constants.java:7,@Mod 见 core/GalacticraftCore.java:160-161 |
| 关联方块 | GCBlocks.oxygenDetector = new BlockOxygenDetector("oxygenDetector") |
core/blocks/GCBlocks.java:116 |
| 方块→TE 分派 | createNewTileEntity(非 createTileEntity)→ new TileEntityOxygenDetector() |
core/blocks/BlockOxygenDetector.java:61-63 |
| 父类 | TileEntityAdvanced(→ 原版 net.minecraft.tileentity.TileEntity) |
core/tile/TileEntityOxygenDetector.java:8、core/tile/TileEntityAdvanced.java:23 |
| 实现接口 | 无(本类无 implements;TileEntityAdvanced 只带 IPacketReceiver) |
core/tile/TileEntityOxygenDetector.java:8、core/tile/TileEntityAdvanced.java:23 |
| 槽位数 | 无(不实现 IInventory,全类无 getSizeInventory()) |
core/tile/TileEntityOxygenDetector.java:1-50 |
⚠ 本机没有 ItemStack[]、没有能量缓冲——它不是 TileEntityOxygen 的子类,
所以不参与氧气管网,也不吃电。
槽位与字段
无槽位、无持久化字段。全类只有继承自 TileEntityAdvanced 的 ticks 计数器
(core/tile/TileEntityAdvanced.java:25),且本类不覆写 readFromNBT / writeToNBT。
能量
无。 父类链为 TileEntityAdvanced → 原版 TileEntity,不含 EnergyStorageTile,
因此没有容量 / maxReceive / maxExtract(core/tile/TileEntityAdvanced.java:23)。
tick / 特殊机制
| 行为 | 频率 | 源码 |
|---|---|---|
| 采样可呼吸空气 | 每 50 tick(ticks % 50 == 0,且仅服务端) |
core/tile/TileEntityOxygenDetector.java:14 |
| 判定体积 | 以本体为中心的 3×3×3 AABB(x-1..x+2、y-1..y+2、z-1..z+2) |
core/tile/TileEntityOxygenDetector.java:25-31 |
| 判定函数 | OxygenUtil.isAABBInBreathableAirBlock |
core/tile/TileEntityOxygenDetector.java:23 |
| 写回方块 | 调 BlockOxygenDetector.updateOxygenState,有氧置 metadata 1,否则 0 |
core/tile/TileEntityOxygenDetector.java:18-21、core/blocks/BlockOxygenDetector.java:65-68 |
| 网络 | 值 | 源码 |
|---|---|---|
getPacketRange() |
0 | core/tile/TileEntityOxygenDetector.java:37-39 |
getPacketCooldown() |
0 | core/tile/TileEntityOxygenDetector.java:42-44 |
isNetworkedTile() |
false | core/tile/TileEntityOxygenDetector.java:47-49 |
⚠ 三个网络方法全被压到 0 / false,本机完全不走 GC 封包—— 指示灯状态只靠方块 metadata 变化同步。