Enable/disable logistics chests
Posted: Sat May 27, 2017 1:21 am
TL;DRIn addition to 'read contents', I think it would be useful if provider chests could be enabled/disabled through the circuit network.
What ?Many entities already have the ability to be enabled/disabled based on circuit network conditions; I think it would be useful to have this extended to logistics chests such as passive providers or storage chests. When a chest is disabled its contents would not be visible on the logistics network and bots would not be sent to collect items from that chest. I don't think it has to refuse bots that have already been given orders (similar to how a requester chest won't refuse bots if you clear the requests after they've already left to fill it) but it would prevent new bots from being sent.
Why ?One place this may be useful is to break loops in the logistics system. For example, you might want to store fuel separate from other items, so you can quickly see how much fuel is remaining before the entire factory comes to a halt (I do this for train fuel, because my whole factory runs on trains). The problem I always encounter in doing this is that I need a requester chest to pull items into this storage area (like taking wood from personal trash slots), but I also need a provider chest to let those items flow wherever they are needed. This creates a loop where every bot in the logistics system starts pulling from the storage area just to drop it back into the same storage area. You can already disable the requester chest using 'set request' through the circuit network, so if you could also disable the provider chest you could break this loop by alternating between the two -- it would request for a few seconds, then provide for a few seconds, and as long as both weren't active at once there would be no loop.
Another possible use would be at prioritizing belts/trains/inserters over logistics. For example you could use provider chests as the buffer at a train stop, but have them disable once the available quantity got too low. That way you could use the same buffer for both trains and logistics, without having one train car always running empty because the bots took everything before the train got there.
Here's an image explaining the first use case...I would want to add a clock signal to alternately enable chests 1 and 2 so they would never both be active. Chest 1 would pull wood from my trash slots or from logistic storage or anywhere else, and chest 2 would provide that same wood out to the rail network at chest 3 (with many copies of that same station design in this network). If I have both at once, every bot in my network just starts pulling from 2 and putting it back into 1 and the rail lines get starved. I can't just set a huge request on each station because then all the wood will go to the closest station and those further away won't get any.
I did see that there are other ideas already suggested which would enable this same use case (such as the combined provider/requester chest) but I think just adding the enable/disable option is a cleaner way of achieving that goal which might find other uses as well. And this seems like such an obvious feature that I had assumed it was already possible until I actually tried to use it and discovered I couldn't!