Cable Intake(物品阀门)
基本信息
| 属性 | 值 |
|---|---|
| modid | StevesFactoryManager |
| FML 注册键 | StevesFactoryManager:BlockCableIntakeName(CABLE_INTAKE_NAME_TAG,ModBlocks.java:42,135) |
| 未本地化名 | sfm.BlockCableIntake / sfm.BlockInstantCableIntake(ModBlocks.java:43-44) |
| 显示名 | 物品阀门 / 快速物品阀门(Item Valve / Rapid Item Valve) |
| TileEntity | TileEntityIntake(BlockCableIntake.java:11) |
| 方块类 | BlockCableIntake extends BlockCableDirectionAdvanced(BlockCableIntake.java:7) |
| 硬度 | 1.2(继承 BlockCableDirectionAdvanced,BlockCableDirectionAdvanced.java:28) |
| 爆炸抗性 | 10.0 — 源码未设置,Block 默认值 |
| metadata | meta & 8 = 快速版(isAdvanced,BlockCableDirectionAdvanced.java:95-97) |
功能
Intake 扫描自身周围一个 AABB 立方体内的 EntityItem,把它们变成"可读槽位"供 Manager 抽取;isUseableByPlayer 返回 false,玩家不能手动开箱(TileEntityIntake.java:149-151)。
拾取范围:DISTANCE = 3,取 [x-3, x+4) × [y-3, y+4) × [z-3, z+4) 的 AABB(TileEntityIntake.java:109-125)。
缓存策略:updateEntity() 每 tick 置空 items,下次访问重建(TileEntityIntake.java:169-171);建表时用 canPickUp 过滤(TileEntityIntake.java:127-134)。
快速版(meta 8)差异:canPickUp 额外放行尚处于掉落冷却中的实体(item.delayBeforeCanPickup != 0)——即刚扔出/刚生成、还没到拾取延迟的掉落物(TileEntityIntake.java:173-176)。
不导通电缆:类头注释明确 “This is indeed not a subclass to the cable, you can’t relay signals through this block”(BlockCableIntake.java:6)。
摆放要求
- 可在任何位置放置;朝向由放置时
determineOrientation写入 meta(BlockCableDirectionAdvanced.java:79) - 不可旋转
数值
| 参数 | 值 | 证据 |
|---|---|---|
| 拾取半径 | 3 格(AABB 立方体,非球形) | TileEntityIntake.java:109-125 |
| 槽位数 | 动态 = 范围内可拾取物品实体数 + 1(items.size() + 1,恒留 1 个空槽) |
TileEntityIntake.java:20-23 |
| 每槽堆叠上限 | 64 | TileEntityIntake.java:144-146 getInventoryStackLimit() |
| 堆叠 / 耐久(物品形态) | 64 / 无 | ItemIntake.java:14 setMaxDamage(0),未调 setMaxStackSize |
交互
| 触发 | 行为 |
|---|---|
| 左键 | 无特殊行为 |
| 右键 | 无特殊行为(onBlockActivated 未覆写) |
合成配方
- 普通:无序 工厂线缆 + 漏斗 + 漏斗 + 投掷器(ModBlocks.java:236-241)
- 快速:无序 普通物品阀门 + 金锭(ModBlocks.java:256-259)
审计订正
- 数值取自错误来源:「库存上限 64 个物品槽」→ 错误。64 是
getInventoryStackLimit()(每槽堆叠上限,TileEntityIntake.java:144-146),被当成了槽位总数。真实槽位数是动态的items.size() + 1(TileEntityIntake.java:20-23)。已拆成两行。 - 编造几何:「拾取范围为 3 格(球形区域)」→ 错误。用
AxisAlignedBB.getBoundingBox取的是轴对齐立方体(TileEntityIntake.java:123-125),没有球形判定。3 格本身正确。 - 语义写反:「高级 Intake 支持即时传输模式,可以更快地将物品注入网络中」→ 源码中高级版唯一差异是能拾取处于
delayBeforeCanPickup冷却中的掉落物(TileEntityIntake.java:173-176),跟"传输速度/注入网络"无关。已改写。 - modid / 注册名错:原文
stevesfactorymanager:blockCableIntake→StevesFactoryManager;传入实参CABLE_INTAKE_NAME_TAG = "BlockCableIntakeName"(ModBlocks.java:42,135)。 - 补正:原文未登记 meta 0/8 两个变体及中文名(快速物品阀门)、未写"玩家不能手动开箱"(TileEntityIntake.java:149-151)、未写每 tick 重建缓存(TileEntityIntake.java:169-171)、未写"不导通电缆"(BlockCableIntake.java:6)与两条合成配方。
相关条目
- Cable Relay - 物品/流体中转
- Cable Breaker - 方块交互器