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;被它供给的是载具的燃料与货物,不是电网能量。

相关条目