0ptera / Logistic-Train-Network

Factorio mod adding logistic network for trains.
Other
155 stars 55 forks source link

Allow "Delivery Timeout" to be disabled #317

Open scottrosenquist opened 1 year ago

scottrosenquist commented 1 year ago

TL;DR I'd like to be able to disable the Delivery Timeout feature, fully aware that this could lead to issues, and that I accept that and will resolve any "lost" trains myself.

What ? I'd like to be able to disable the Delivery Timeout feature.

Why ? I'd like to be able to use my trains as my buffer chests. I'd like to have a train sitting at a station, unloading to belts. I don't want to worry about how long it takes. If a train is unloading to an assembler line that builds rockets, but I haven't used rockets in 24 hours, I want that train to keep sitting there, "delivering." I would use the contents of that train to track and trigger the threshold and request of that LTN requester station so that I can ask for the replacement train at any percentage I want, which I'm already currently able to do with circuits.

I'm sure many people won't care about this feature, I understand that. But some people might, and it's got to be a very simple feature to implement. Throw enough warnings on it that "it's your responsibility to fix your train issues when they come up" and I don't think anyone will accidentally turn it on when they don't want to.

Thanks, and thank you for making LTN in the first place.

NightOps007 commented 1 year ago

Maybe don't disable the timeout feature, but make it so that ltn won't send a new train while a station is physically occupied. I've seen my trains pile up on one station because of this. You can just set that station combinator to disable alerts for that station.

0ptera commented 1 year ago

Delivery timeout is preventing stored delivery data from piling up. Not all cases when a delivery has to be removed are covered by just relying on events from trains returning to depots or being removed.

Maybe don't disable the timeout feature, but make it so that ltn won't send a new train while a station is physically occupied.

Use LTN's max trains signal to limit how many trains are sent to a stop.

DannyParker0001 commented 11 months ago

Hello, the way I have my unloaders designed means that trains need to be buffered to sustain full throughput. If this part of the base in inactive for longer than the max timeout time then LTN assumes all trains are lost and will re-send all the buffer trains and locks up my train network since there's no space for them. I could continue to make the chest buffers larger, but this is worse for performance I don't see why LTN can't just handle trains being buffered.

Off the top of my head, I can only think of 6 unexpected ways that a delivery could be 'timed out'

Assuming I didn't miss anything, if the timeout was set to 0, the only issue that could cause an 'invisible pileup' would be if the train was destroyed. Otherwise, LTN should only send a limited number of trains that shouldn't be hard to find if they get stuck. Am I missing something here?