TrainCarts/Signs/Mutex
Introduction
The mutex sign handles mutual exclusion: it blocks trains entering a zone while another train is already inside. Once the zone is freed up again, the waiting trains are allowed to continue movement. This sign is useful in combination with switcher signs to avoid crashing trains. Levers attached to the base block are toggled while a train is inside the mutex zone.
Multiple mutex signs can be combined by naming them the same, combining the cuboid areas of effect they occupy. This way more complex zones can be created.
Syntax
- First line: [train]. The sign does not have to be powered.
- Second line: mutex, which without further arguments will create a cuboid zone around the sign of 1x2x1 (x/y/z). When followed by one number, the number sets all cuboid x/y/z-radius values at once. When followed by a second number, the first number sets the x/z-radius and the second number the y-radius. With 3 parameters, each x/y/z radius can be specified.
- Third line: Name (optional), multiple mutex signs with the same name form a single combined mutex zone
- Fourth line: Statement (optional), each sign with the same name adds to a list of statements. Prepend & or | to switch between AND and OR logic.
Smart Mutex
The Smart Mutex is a mutex sign that checks the paths trains (will) take through the mutex zones, allowing trains to pass that don't have a path intersecting with one another. This allows multiple trains to cross an intersection at the same time provided they can safely pass each other.
Prediction
When checking the path a train will take through the smart mutex zone, switchers are taken into account. The current switched state of the rails is then not important.
Pathing Mutex
The pathing mutex attempts to replace the waiter sign in a more reliable fashion. When trains activate the pathing mutex sign, a path is predicted that the train will take from that point. All rails visited along this path become part of a temporary mutex zone. Other trains are blocked from entering this path, and if a train is already on it, the train is stopped in front of the pathing mutex sign.
Syntax
pathmutex / pmutex: Creates a standard mutex zone using the path ahead
spmutex: Creates a smart mutex zone using the path ahead
First number is the path distance ahead to create as a mutex zone. Second number (optional) sets the width, or, distance that trains keep from the path. Setting this to a higher number avoids trains colliding with each other.
Slowing down on approach
By setting the train wait acceleration property, trains will automatically slow down approaching an occupied mutex zone, instead of stopping instantly.
Debug
Use /train debug mutex to temporarily display the exact boundaries of nearby mutex zones.