Generic Pipe(通用管道方块)
Generic Pipe 是 LogisticsPipes 模组中的核心管道方块,实际上是一个玻璃方块,用于承载 40+ 种管道类型。
基本信息
| 属性 |
值 |
| Block 类 |
LogisticsBlockGenericPipe |
| TileEntity |
LogisticsTileGenericPipe |
| 渲染模型 |
glass block |
| 管道类型数 |
40+ |
架构设计
双层结构
[LogisticsBlockGenericPipe] (玻璃方块,BlockContainer)
↓ createNewTileEntity()
[LogisticsTileGenericPipe] (TileEntity wrapper)
↓ contains
[CoreUnroutedPipe / CoreRoutedPipe] (实际管道逻辑)
LogisticsBlockGenericPipe:Minecraft 层面的方块,处理放置、破坏、渲染
LogisticsTileGenericPipe:包装层,处理连接逻辑、渲染状态、plugables、facades
CoreRoutedPipe/CoreUnroutedPipe:实际管道逻辑,定义行为
管道注册
每种管道类型是独立的 Item 类(在 src/main/java/logisticspipes/items/ 下),放置时调用:
// LogisticsBlockGenericPipe.pipes 映射
ItemPipes.BasicLogisticsPipe → Basic Logistics Pipe
ItemPipes.AdvancedSatellitePipe → Advanced Satellite Pipe
ItemPipes.FluidBasicLogisticsPipe → Fluid Basic Logistics Pipe
// ... 40+ 种
管道类型分类
物品运输管道
| 管道 |
功能 |
| Basic Logistics Pipe |
基础物品传输 |
| Provider Pipe |
向网络提供物品 |
| Request Pipe |
请求物品 |
| Crafting Logistics Pipe |
自动合成触发 |
| Satellite Pipe |
远程请求中继 |
流体管道
| 管道 |
功能 |
| Fluid Basic Logistics Pipe |
基础流体传输 |
| Fluid Provider Pipe |
提供流体 |
| Fluid Request Pipe |
请求流体 |
电力管道
| 管道 |
功能 |
| Power Junction Pipe |
电力中继 |
装饰性管道
| 管道 |
功能 |
| Firewall Pipe |
防火墙(阻止特定方向) |
| Facade Pipe |
外观覆盖管道 |
远程管道
| 管道 |
功能 |
| Remote Orderer Pipe |
远程订购 |
摆放与交互
放置
- 右击放置管道物品
- 自动根据放置面确定连接方向
- 相邻方块如果是管道或兼容方块则自动连接
连接检测
LogisticsTileGenericPipe.canPipeConnect() 检测相邻方块是否可连接:
// 检查相邻 TileEntity
if (tilePipe instanceof LogisticsTileGenericPipe) {
return ((LogisticsTileGenericPipe) tilePipe).canPipeConnect(this, orientation);
}
能量交互
- 实现了
isPowerProvider(ForgeDirection) 检测相邻能量供应器
- 管道侧面的能量供应器会使管道显示特殊纹理
渲染
玻璃纹理
玻璃方块提供半透明渲染效果,叠加管道图标。
纹理变体
| 状态 |
纹理 |
| 普通未路由 |
LOGISTICSPIPE_NOTROUTED_TEXTURE |
| 已路由 |
LOGISTICSPIPE_ROUTED_TEXTURE |
| 有电力连接 |
LOGISTICSPIPE_POWERED_TEXTURE |
| 子电力出口 |
LOGISTICSPIPE_SUBPOWER_TEXTURE |
Facade(外观覆盖)
LogisticsTileGenericPipe 支持通过 IFacadeItem 设置外观覆盖,隐藏管道本身。
关键类层次
BlockContainer
└── LogisticsBlockGenericPipe
└── 创建 LogisticsTileGenericPipe
TileEntity
└── LogisticsTileGenericPipe
└── 包含 CoreUnroutedPipe 或 CoreRoutedPipe
CoreUnroutedPipe (基础管道,不可路由)
└── LogisticsPipe (基础物流管道)
CoreRoutedPipe (可路由管道)
├── PipeItemsBasicLogistics
├── PipeItemsCraftingLogistics
├── PipeItemsRequestLogistics
├── PipeLogisticsChassi
├── PipeItemsSatelliteLogistics
├── PipeFluidBasicLogistics
└── ... (40+ 子类)
与实心方块的区别
| 特性 |
LogisticsSolidBlock |
LogisticsBlockGenericPipe |
| 材质 |
铁方块 |
玻璃方块 |
| 变体方式 |
metadata 区分 |
多种 Item 子类 |
| 数量 |
8 种功能方块 |
40+ 种管道类型 |
| TileEntity |
直接包含逻辑 |
包装 CoreRoutedPipe |