Based on the advtrains wiki groups:
Type Group Classifier
- Locomotives: group:at_loco is_locomotive = true
- Controllable: group:at_control seat_groups.dstand
- Passengers: group:at_pax seat_groups.pass
- Freight: group:at_freight has_inventory = true
- Add sign for line speed 20 (else no way to return to max line speed once set)
- When no distant signal info available (default), Ks displays green light (2 sections free)
- Normal and wall signals again signal maximum speed (persistent restriction can be given via line speed nouw)
Issue was that train thought it would collide with the newly added back portion although it was already long past this train. Added additional check that current train index is not further than the collision point.
- Adds a separate collision system for trains sharing a path
- Moved some coupling-related code to couple.lua and refactor it
- Handle coupling in a way that the initiating train always keeps its ID
- As a side effect, engine has its direction reversed after coupling
If the advtrains_forgiving_collision setting is set to true, then the
train only collides with nodes that do not have normal
drawtype. Otherwise the old behavior is restored. This change is being
made because there were users and mods relying on the old behavior,
such as the railroad_paraphernalia mod's track blocker.
As per discussion on the forum (https://forum.minetest.net/viewtopic.php?p=396745#p396745), changes the train-world collision logic to make trains only collide with nodes that are solid cubes.
This allows for more creative freedom, but shifts the responsibility of building realistic railways to the players.
In the future, a more sophisticated environment collision system might be invented, but this is low-priority and should be optional to save CPU.
- LuaATC remains non-craftable for now (elevated privs necessary anyway)
- Some crafts altered from dario's proposal
Co-authored-by: W3RQ01 <dario23@linux-forks.de>
interlocking.set_route() was updating the signal aspect, which caused LZB's invalidate_ahead callback to run, although the route isn't yet fully set. Don't look ahead at this point, but instead in the next train step.