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