TileEntityBuggyFueler(燃料装填台)
事实基准:
/Users/evlos/a/mirror/Galacticraft(master,minecraftVersion = 1.7.10)逐行读源码。
注册信息
| 属性 | 值 | 来源 |
|---|---|---|
| TileEntity 注册名 | Buggy Fueler |
GalacticraftCore.java:721 |
| 注册类 | micdoodle8.mods.galacticraft.core.tile.TileEntityBuggyFueler |
同上 |
| 关联方块 | GCBlocks.landingPadFull = new BlockLandingPadFull("landingPadFull") |
core/blocks/GCBlocks.java:98 |
| 方块→TE 分派 | metadata == 1 时返回本类 |
core/blocks/BlockLandingPadFull.java:156-161 |
| 父类 | TileEntityMulti |
core/tile/TileEntityBuggyFueler.java:24 |
| 实现接口 | IMultiBlock / IFuelable / IFuelDock / ICargoEntity |
同上 |
| 所属 modid | GalacticraftCore |
core/GalacticraftCore.java:160-161、core/Constants.java:7 |
| 槽位数 | 无(不实现 IInventory,无 ItemStack[]) |
core/tile/TileEntityBuggyFueler.java:24-199 |
⚠ 它挂在「完整登陆台」方块 landingPadFull 上,不是独立方块——
BlockLandingPadFull 的 metadata 0 给 TileEntityLandingPad,metadata 1 才给本类。
槽位与字段
没有槽位:燃料与货物全部转交给停靠的载具,自己不存。
| 字段 | 类型 | 语义 | 源码 |
|---|---|---|---|
dockedEntity |
IDockable |
当前停靠的载具 | core/tile/TileEntityBuggyFueler.java:26 |
mainBlockPosition |
BlockVec3 |
多方块主块坐标(父类) | core/tile/TileEntityMulti.java:17-18 |
转发方法(全部 dockedEntity == null 时返回空值):
| 方法 | 无载具时返回 | 源码 |
|---|---|---|
addFuel(FluidStack, boolean) |
0 |
core/tile/TileEntityBuggyFueler.java:121-127 |
removeFuel(int) |
null |
core/tile/TileEntityBuggyFueler.java:130-136 |
addCargo(ItemStack, boolean) |
EnumCargoLoadingState.NOTARGET |
core/tile/TileEntityBuggyFueler.java:139-145 |
removeCargo(boolean) |
RemovalResult(NOTARGET, null) |
core/tile/TileEntityBuggyFueler.java:148-154 |
tick / 能量 / 网络
多方块结构
onCreate()(core/tile/TileEntityBuggyFueler.java:78-91)在 x: -1..1、z: -1..1
(除主块自身)放 8 个 GCBlocks.fakeBlock 假方块,metadata 固定为 6(:87)。
结构尺寸 3 × 1 × 3(单层平板),源码没有可旋转逻辑—— 对比见 TileEntityMulti 与 5 个真实多方块结构。
tick
updateEntity()(core/tile/TileEntityBuggyFueler.java:29-65)每 tick 在
AABB x±1.5、y−2.0..y+4.0、z±1.5(:33-41)内找 IFuelable,
对每个 isDockValid(this) 为真的载具调 setPad(this)(:49-51);
本帧没找到就把旧载具解绑(:57-63)。
getConnectedTiles()(:157-177)另扫一圈 x/z: -2..2 的边框(|x| != |z| 且 |x|==2 或 |z|==2,
:162)找 ILandingPadAttachable,即给周围机器供电的连接范围是 5×5 的环带。
GUI
onActivated() 返回 false(core/tile/TileEntityBuggyFueler.java:73-75)——
没有界面、没有 Container,加注/装货完全由载具与流体接口自动完成。
网络
| 项目 | 值 | 来源 |
|---|---|---|
| 封包距离 | 30.0 |
core/tile/TileEntityMulti.java:83-85 |
| 封包冷却 | 50 tick |
core/tile/TileEntityMulti.java:88-90 |
| 是否同步 | true |
core/tile/TileEntityMulti.java:93-95 |
| 同步字段 | 仅父类的 mainBlockPosition |
core/tile/TileEntityMulti.java:16-18 |
能量
本身不耗电,也无 EnergyStorage;被它供给的是载具的燃料与货物,不是电网能量。