-
Notifications
You must be signed in to change notification settings - Fork 3
Basic Pipes
The following listed blocks are referred to as Basic Pipes here:
-
Item Transport Pipe,Fluid Transport Pipe -
Item Extraction Pipe,Fluid Extraction Pipe -
Item Injection Pipe,Fluid Injection Pipe -
Item Source Pipe,Fluid Source Pipe -
Item Destination Pipe,Fluid Destination Pipe
Each Item Pipe has a corresponding Fluid Pipe counterpart that works exactly the same, the only difference is the type of resource it operates with.
All Basic Pipes have an internal inventory that is not accessible via GUI but the contents are graphically indicated on the pipe block and machines can interact with it (Hoppers can pump in or pull out items for example). However some pipes may impose restrictions on machine interaction which is described later on.
For Item Pipes this inventory can hold a single stack up to its natural stack limit and for Fluid Pipes it can hold up to 1000mB of a single fluid type by default (the tank capacity can be changed in the mod's config).
When Pipes are placed next to each other they will connect with each other by default but you can split unwanted connections by sneak right-clicking on them with an empty hand (in survival mode you can also hit the connection by left-click). To connect them again, just empty hand sneak right-click on the face of the pipes center cube where you want the connection.
Note: pipes will remember disconnected sides, so if you have two disconnected pipes next to each other and break and replace one of them, they will still stay disconnected. And it is also possible to toggle the disconnection state on sides that have no neighboring pipe block yet.
In order for pipe contents to move from one pipe to another, there needs to be at least one source and at least one destination in your connected structure. A source can either be a Source Pipe or an Extraction Pipes connected to a neighboring inventory and a destination can be either a Destination Pipe or an Injection Pipe connected to a neighboring inventory.
Once both exist, a path of red and green arrows will form from sources to destinations and resources will travel along that path. If you only see green arrows then that means there is a destination but no source and only red arrows means there are sources but no destination.
Transport through pipes works as follows: If a pipe block has both a green and at least one red arrowed connection, it will pass its contents on to the pipe on the green arrowed connection if the inventory of that pipe is empty (pipe contents are never merged together).
Note: Multiple pipes can feed into a single pipe but each pipe can itself only feed one other pipe, that means a resource flow can not be split over multiple destinations, unless it travels through all of these destinations one after another. However, if a pipe has multiple output options according to the generated path, you can use a Redstone signal on the pipe to control which one it picks.
Extraction Pipes will try to pull resources out of connected inventories (tanks, chests, machines, etc.) and put them in their internal inventory or merge with the existing content. They also restrict external access on their internal inventory to inserting resources only.
Injection Pipes will try to insert their content into connected inventories and only the remainder that couldn't be inserted is passed on to the next pipe. They also restrict external access on their internal inventory to extracting resources only.
The behavior of these two pipes can be enhanced by the use of Pipe Filters.
Side note: The inventory access restriction on Extraction/Injection Pipes is ignored for sides that were set into disconnected state.
Note also: If you have an Extraction or Injection Pipe connected to another Basic Pipe and split the connection by clicking on the other pipe's side of the connection then the Extraction/Injection Pipe will still show a (one sided) connection to the neighboring pipe. That is because it will then treat the neighboring Pipe as a regular inventory.
Such pipe configurations can be very useful in some cases.
Source and Destination Pipes don't actively interact with other inventories and are useful in cases where your machines are already capable of doing the extraction/insertion on their own.
They can be equipped with Filters too, which will restrict what resources can be extracted/inserted on their internal inventory. And the Filter's blocking mode can also be used on Destination Pipes to prevent certain resources from being moved on.
Unlike Extraction/Injection Pipes, inventory access restrictions don't depend on disconnection state here. <- yet to be implemented
Transport Pipes have no special properties and are mainly used to cover distances between other pipes to connect them.
The following properties can be tweaked via config:
-
fluid_pipe_capdefines the internal tank capacity for all Basic Fluid Pipes in mB, default is 1000 mB. -
fluid_pipe_tickcontrols the time interval between extraction/injection as well as transfer operations in game ticks for all basic Fluid Pipes, default is 4 ticks (= 0.2 seconds). -
item_pipe_tickis the same asfluid_pipe_tickbut for the Item Pipes.
So the maximum transfer rate for Fluid Pipes is fluid_pipe_cap / fluid_pipe_tick * 20 mB/sec (= 5000 mB/sec by default).
And for Item Pipes it's item_stack_limit / item_pipe_tick * 20 items/sec (= 5 stacks/sec by default), where item_stack_limit is the natural maximum stack size of the item to be transported.