Common tasks
This page uses GameObject from Unity. The glossary says what each one is.
List every train on the track.
foreach (TrackTrainInfo train in Trains.All())
Log.Info(train.Id + ": " + train.WagonType + " at speed " + train.Speed);
Send every switch that points at branch 0 down branch 1 instead. The call is refused when a train is on the switch’s track.
foreach (UnityEngine.GameObject sw in Trains.Switches)
{
if (Trains.GetBranch(sw) == 0) Trains.SetBranch(sw, 1, force: false);
}
Turn every wagon loader on.
foreach (UnityEngine.GameObject loader in Trains.Loaders)
Trains.SetLoaderOn(loader, true);
List the pieces of track that a train is on.
foreach (TrackSegmentInfo segment in Trains.Segments())
if (segment.Occupied) Log.Info("Track " + segment.Id + " is taken by train " + segment.OccupiedBy);