Train Signals

Experimental Block=

Path=

Block and Path Signals are structures that can be placed on Railways to control the movement of trains and to prevent collisions.

Construction
Both types of train signals can only be built on the joints of constructed Railway tracks and will automatically snap to them. The forward direction of the signal is determined by which side of the joint is targeted. An Arrow also indicates the forward direction.

Up to 2 Signals facing opposite directions can be placed on each track joint.

Usage
Signals divide the track into blocks, which is a section of track bounded by other signals. Blocks have to have an entry signal as well as an exit signal. All block entry signals have to be of the same type, either Block or Path. Path Signals can't be used as a terminal signal for other Path Signals.

Block Signals only communicate with the following (exit) Signal about the current block's status. Path Signals ensure trains can enter the block and exit through a following, free Block Signal, therefore considering both the current and following block's statuses. This means that Path Signals ensure trains will not have to wait anywhere inside the block.

A block is considered occupied if even part of a train is present anywhere within it. Path Signals subdivide a block into paths, and treat them as individual subblocks while additionally checking the exit of the path to ensure a train won't stop anywhere within the block. This allows multiple trains to pass through the same block at the same time as long as their paths don't intersect each other. All trains are prevented from entering a block or a path if another train is in it.

Pathfinding is done by Locomotives, not Signals. Path Signals reserve paths based on information received from incoming trains. Signals cannot change the paths trains have chosen, they can only tell the trains whether they can proceed on their path or not. This renders rail stackers impossible to build.

Trivia

 * Train signals were originally planned for Update 6.

History

 * Patch 0.5.0.0: Introduced