- If it is parking, halting or waiting it occupies only the track it sits on. (1 track)
- If a train is moving and reaches the end of the current track it occupies this and the next track until it reaches the end of said track. (2 tracks)
- if the next track has no signals on it the train occupies this and also the following track (3 tracks)
Now every time a contact on the track changes state the environment updates all train instances so that they in return may update the trains position and change the power state of some tracks.
This has as prerequisite that a contact will always change state when a train drives over it.