Page 1 of 1

Train functionality changed, looking for solution

Posted: Thu Oct 24, 2024 4:29 am
by evopwr
I used to have my entire base perimeter dotted with train stations called "Repair". They would become enabled when there was a shortage of robots/repair packs/walls/etc.

I used to have my schedule as "Repair, Repair, Repair, Home". So it would do up to 3 stations then go home. The criteria would be either inactivity or time-passed.

But if I do it now, it just goes to the first station and sits there.

I tried just having 1 stop in the train list, with the "home" as an interrupt, but again it goes to the first station, and doesnt move from there.

I dont want it going to 1 station, then home, as each round trip would be too time-consuming.

Does anyone have any ideas how I can make this work?

Re: Train functionality changed, looking for solution

Posted: Thu Oct 24, 2024 7:05 am
by mrvn
You set the train limit to 0 when the station needs no repair packs and to 1 when it needs repair packs. Then the train will go to whatever station that raises it's limit to 1.

Re: Train functionality changed, looking for solution

Posted: Thu Oct 24, 2024 5:40 pm
by evopwr
Thanks mrvn, that works well. :D

If anyone else is looking for a similar approach, here is how I have it working:

Initially I had the train just going to "home" to refill, as the only station, and then had each serviceable "repair" station as an interrupt.
However this meant if you had a large number of repair stations go active, and the train becomes empty, then it never goes home because it was still trying to service all the Repair stations. So I needed to add the refill stage as an interrupt as well, and add a sleeping area.

Final solution:
Train has only one train stop, a sleeping area where it does nothing, and 3 interrupts:
1. Repair station becomes active when the circuitry sets the train count (L) to 1. Train then goes there and refills its supplies. If there is another repair station it then goes to that one, etc. When there are no repair stations, it heads back to its sleeping area.
2. Refill. When one of the train contents (item count) gets low, it is interrupted and sent home to refill. I had to add "allow interrupting other interrupts" to this, because otherwise it just keeps doing #1 with an empty train. I tried playing with priorities, but this functionality is for a different purpose, and doesnt apply here.
3. Refuel. When the train fuel is below 10, head to get more fuel. Again this interrupt allows interrupting other interrupts.

I possibly could have used a more generic train that services any kind of material, but this is a specific 1 carriage train, and a bit separate from the other "any material" trains I'm using elsewhere.

Re: Train functionality changed, looking for solution

Posted: Fri Oct 25, 2024 2:26 am
by greymane
I like the overall idea of interrupts, but I think they shouldn't have disabled the regular handing of when a station is disabled.

I do something similar to what you noted on your initial question with repair and fueling trains. If the train goes to 1 station tho and the next in line is disabled, it should SKIP that one and go to the next available one...not just stop and sit and wait for an interrupt. The interrupts should be an addition, not mandatory.

I don't understand why they changed this.

Re: Train functionality changed, looking for solution

Posted: Fri Oct 25, 2024 3:23 am
by evopwr
Agreed. No doubt there was some logical reason why - hopefully they'll share it and give us an insight.

Re: Train functionality changed, looking for solution

Posted: Fri Oct 25, 2024 7:11 am
by Kalanndok
They already shared that information in FFF-395.

Re: Train functionality changed, looking for solution

Posted: Fri Oct 25, 2024 3:44 pm
by greymane
Thanks Kalanndok. I hadn't seem that FF (framkly I had a hard time keeping up on them). Still wish they didn't do that but I guess it makes sense, though by their own logic of the train going someplace inadvertant if it skipped a stop, that should still be on us to program.

This is more just me being gripy though having to relearn a system I had gotten used to :D

Re: Train functionality changed, looking for solution

Posted: Tue Oct 29, 2024 11:53 am
by sangrenl
Having the same problem.

I read the FFF and i understand why they removed the skipping (trains stuck on the rails with no path) but just sleeping at a station until the next stations opens up, is even worse?

Say i have 4 schedules for a train:

1 pick up blue science
2 pick up red science
3 pick up black science
4 drop off at researchplant

i want to disable the pickup spot if there is nothing to pick up (thats very simple to do, just hook up the station with the chests)
In all the years i played, the train would just skip a disabled station. now it sits at red science until black science opens up.

Schould i then make 3 interrupt?
If blue is full/disabled go to red
if red is full disabled go to black
if black is disabled go to drop off

is there no other solution?

I found some videos where people make a whole setup with multiple combinators etc which selects priority etc..
i just want to skip a station that is disabled.

I do love all the new features with trains btw, its just my mind being stuck in the old way of thinking

-update-
I found a solution,
after every station, place another station right after it, call all those extra stations 'skip'
then make an interupt, if station is full, go to skip, without any waiting condition.

That way the train wil go straight to the next available station, passing skip will count as the interupt completed

Re: Train functionality changed, looking for solution

Posted: Mon Nov 04, 2024 10:16 pm
by hairintd
evopwr wrote: Thu Oct 24, 2024 5:40 pm Final solution:
...
2. Refill. When one of the train contents (item count) gets low, it is interrupted and sent home to refill. I had to add "allow interrupting other interrupts" to this, because otherwise it just keeps doing #1 with an empty train. I tried playing with priorities, but this functionality is for a different purpose, and doesnt apply here.
...
I'm curious if there is effective solution to make refilling condition simpler than specifying each item for each interrupt.
I have several "special" trains (construction, mining supplies, outpost repair, etc) which can have more than 10 different items in its cargo. So specify condition once is "ok", but changing it from time to time is kind of a pain. At stations you can have constant combinator with all of required items and easily copy/paste between stations. But now you need to keep in mind also interrupts...
I'm thinking now of replacing "item count" condition to "circuit condition", but it doesn't seems to be effective because requires additional combinators for each serviceable station for the same task.

Re: Train functionality changed, looking for solution

Posted: Sun Nov 10, 2024 4:57 pm
by evopwr
sangrenl wrote: Tue Oct 29, 2024 11:53 am Having the same problem.

I read the FFF and i understand why they removed the skipping (trains stuck on the rails with no path) but just sleeping at a station until the next stations opens up, is even worse?

Say i have 4 schedules for a train:

1 pick up blue science
2 pick up red science
3 pick up black science
4 drop off at researchplant

i want to disable the pickup spot if there is nothing to pick up (thats very simple to do, just hook up the station with the chests)
In all the years i played, the train would just skip a disabled station. now it sits at red science until black science opens up.

Schould i then make 3 interrupt?
If blue is full/disabled go to red
if red is full disabled go to black
if black is disabled go to drop off

is there no other solution?

I found some videos where people make a whole setup with multiple combinators etc which selects priority etc..
i just want to skip a station that is disabled.

I do love all the new features with trains btw, its just my mind being stuck in the old way of thinking

-update-
I found a solution,
after every station, place another station right after it, call all those extra stations 'skip'
then make an interupt, if station is full, go to skip, without any waiting condition.

That way the train wil go straight to the next available station, passing skip will count as the interupt completed
As Mvrn recommended earlier in this thread - instead of disabling the station, simply set the Train Limit to 0 (via circuitry).