Schedule yes, definitely. But the entire point of global interrupts is that interrupts are supposed to be written once, and be reusable, so if you can edit them once and the change applied across schedules. If you start to need an individual interrupt for each schedule, this mechanism is worthless.robot256 wrote: ↑Fri Dec 15, 2023 9:44 pm
If you want the trains to have different behavior based on which train they are, isn't it natural that you would need different schedules for them? Unless you had the stop read the train ID and decide whether to activate the interrupt based on that. Each version could still be a train group applied to any number of trains following each set of interrupts.
For the refueling example, you could have two refueling stops at opposite ends of your network. Stops near the "FUEL_A" stop would provide the "A" signal, and stops near the "FUEL_B" stop would provide the "B" signal. You could include both A and B interrupts on all trains, even if they never go to the A-adjacent destinations and therefore never get sent to FUEL_A.
Similarly, you could have refueling stops for different lengths of trains. You make one schedule group for each length of train, and include just the interrupt for the appropriate fuel stop in each group. That interrupt can itself contain a circuit condition, so you can still indicate proximity to a particular fuel stop.
For a stupid simple example, suppose you have a fuel station just east of the central hub, and two trains; one does west<->hub, the other hub<->east. Ideally the first train would look for the fuel station when around the hub, while the other would do the opposite. Because of this, you'd need to trigger their refueling using different interrupts, which defeats the purpose of a generic "go to refuel station".
Now please don't get me wrong, this is a stupid example and could probably be easily worked around, but hopefully you can see how this types of situations could come up with other things. My point is that being able to add a little bit more configuration to the proposed interrupts would allow for a hell lot more of flexibility when it's needed. Ultimately train schedules are on the path of becoming some sort of programming language, so stopping just short of allowing this additional option (because as far as the post showed all the required pieces are essentially already there) seems a bit weird. Maybe my suggested approach is not the optimal and just having conditional stations might work just as well; I was just trying to show why we are really close to be able to do this kind of stuff and would be nice to be able to.