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 变化同步。

相关条目