TL;DR
I have a proposal to improve the work of trains, which will allow programming more flexible logic of the railway.What ?
Now I use the following logic on my base:1. The names of the stations in all mines are the same
2. There are several unload stations, also with the same (other) names
3. Trains have a schedule "fully loaded (or wait 15 seconds) -> completely unload"
4. Station at the mine is off, while in the chests there is not enough ore to load a full train
4. The unloading station is off, while there is not enough space in the chests to unload the train.
Trains at this logic themselves find available stations and carry ore. There is no need to change schedules, it is enough to build one more station and give it an appropriate name.
Recently, I began to notice that the trains arrive at unloading empty. As I understand it, the following happens:
1. Station at the mine is switched on
2. Several trains see him and go to him
3. The first train arrives and is loaded
4. The station turns off
5. The remaining trains go to the unloading station empty
I think you can improve the game a little by making the following changes:
- Add the "Strict Schedule" setting for the train to the train: with the setting enabled, the train must follow the stations in the strictly marked order, that is, if the next station is not available - wait at the current one. This will create a "buffer" - a group of train stations where trains will wait for the availability of the target stations. Now this is possible only if there are two stations in the schedule. If suddenly the situation happens, "the train goes to the station, but the train station turns off" - the train must return to the previous station.
- On long routes, the situation is possible when several trains go to the station at once. To avoid this, I think that it is necessary to add a option to the station "If the train goes to the station, then for the other trains the station is off". This will avoid the situation when several trains go to one station, although only one is enough.