One-way item routing?

I’m having trouble finding a way to prevent items on one part of a pipe network from entering another (while allowing travel in the opposite direction). This is how I want my system set up:

  • Shredder from ore processing outputs a dust of any size (usually 1/9 or 1/72)
  • If there is an item barrel for the dust in main storage
  • Otherwise, send it to an area I use to collect / condense unhandled dusts
  • Items should not be routed to the above area through the main storage’s pipes

The last point is what requires me to keep items moving only in one direction. My only ideas so far have been to use hoppers or inventory extenders as a “one-way valve”, but this doesn’t work since the shredder output will insert items into the hopper or inventory-extended pipe even if there are no matching item barrels, and clog it. Is there any mechanism that would work for what I want?

2 Likes

my primary display is currently fried so i am gonna keep it short:

How exactly do you prevent your Machine area from going between machines too? Because this sounds like an issue of “i just dont want my computer to path all the pipes all the time”. If you want the dust area to always be considered first, you should use restricting pipes on all other paths except the dust path, that is the usual way. Other than that its Hoppers and such as you described.

1 Like

My main concern is that if I’m accidentally outputting something to the network that I don’t have storage for, and isn’t being accepted by any other machines, then it will get sent to the dust organizing area instead of just being stuck locally. I don’t expect any unwanted connections between machine lines, since I intend to only accept things off the main bus in a filtered way, and just try to plan against any unintended production loops.

2 Likes

Also, if I want to push items onto the network on demand without a large buffer at the acceptors, they would get routed into the dust area if no machines currently need it.

2 Likes

You could add a chest with lowest Priority in your pipe system for unsort item.

2 Likes

And the Storage System should have barrels for every material-dust. If maschin need a certain kind of dust, for example bauxite dust for Al-process, just storage every bauxite dust next to the mashine with a large metall berrel. Export some certain material form Storage System is inconvenien for Gregtech Logistics.

2 Likes

Okay I have a solution for you that should work with your System then.

The Pipe going to your Dust Collection Area, put a Dust Funnel set to the smallest Dust Size inbetween the production and the dust Area. That way ONLY Dusts ever make it to your Area. If you are concerned about the bandwidth use of microscopic Dusts, use 5 OreDict Filters to Filter for the 5 sizes of Dusts (Block of Dust, regular Dust, small Dust, tiny Dust, 72nd Dust).

1 Like

Thank you, I think that should work well enough for me. There is still an issue if I want to push dusts between machines over the main bus (e.g. a producer of carbon dusts?), but I can just do the minimal size dust conversion at the ore processing output and oredict for those at the dust collection area.

Somewhat related question - do items in item pipes consume bandwidth even if they fail to be routed? Asking since if I want to have push-based item distribution I would have items sitting in item pipes and waiting for compatible inventories, which could use up some of the bandwidth.

2 Likes

You know you can use Restrictor Pipes to deprioritize anything such as your Dust Area in the first place?

As for the bandwidth, it is only ever used for things that actually get transferred so dont worry. I would however maybe put a regular size brass pipe at each output so that one machines high throughput wont consume it all before others can.

1 Like

If none of the production lines that use carbon are currently accepting, carbon put onto the network would still get routed into the dust area because nothing closer will take it.

2 Likes

Yes that will happen exactly like this, that is why Restrictive Pipes exist, they make the path LOOK longer to the algorithm

1 Like

I don’t want the dusts to be routed into the dust area if it’s not the output from ore processing. It doesn’t matter if the path is longer because it’s the only available path.

2 Likes

Then I dont exactly understand what you want if this method would not work. A One-Way would not do the thing you want either in that case.

1 Like

Shouldn’t it, if the pathfinder could see through it? Then dusts from ore processing could make it to the item barrels if available, or into the dust collection area if not, while the one-way would prevent dusts from outside the ore processing from getting into the dust collection area.

2 Likes

Here’s a diagram of the carbon example.

I want to be able to put the C and Ti connections on the same pipe network, but I do not want any Carbon to get into the dust collection area.

2 Likes

AH THERE is your problem, you think putting them into the same network is a good idea in the first place, which it is not, especially for lag reasons. You should maybe do that direct connection for the Carbon thing.

1 Like

Would sharing the bus add much lag when everything sent to storage already uses the same pipe network? I wanted to avoid the material / spaghetti cost when multiple producers/consumers or distance between the producer/consumer would make a dedicated line longer. Though, I could just have all intermediates be on a single line parallel to the one used for sending to storage, and avoid the dust problem that way, even though it might not reduce lag as much. Then at least I wouldn’t need a separate line for each intermediate, and it only has to be extended enough to support the actual intermediate connections needed.

EDIT: Actually if I didn’t care about lag I could just use the ore dict filter like discussed earlier anyway.

2 Likes

OreDict Filter lags less than scanning for more Pipes, lol.

1 Like

What makes using the separate pipe network laggier? A similar number of pipes should be scanned per item in the worst case, since the intermediate pipe would be around the same length as the storage pipe, and the intermediate products would now only be looking at the new pipe and not the storage pipe. It would also avoid trying to store into the main storage’s item barrels or into item barrels used to output onto the storage network. I don’t know anything about the pathfinding code though.

2 Likes

The separate Line is LESS laggy not more. How the heck did you get the opposite impression?

1 Like