The system for connectable tilemap objects.
For technical documentation on this system use the link below.
This works by using several differently shaped models and replacing them depending on any adjacent tiles with the same type of connectable (see the Tilemap document for more details).
Different types of connectables have different ways they allow or don’t allow connections.
For example, wires can connect diagonally and have several unique shapes that are not possible with tables.
As a result, we use several unique mathematical scripts known as “adjacency connectors” to handle the connection logistics.
Types of connectables are manually defined by an ID known as a “generic type” (ex. wall, table, wire, cable, etc.). When properly assigned, this ID makes sure different types of connectables properly connect to themselves but not other types of connectables.
In addition to generic types, some connectables may even have a “specific type” ID. The specific type is used to distinguish different variants of the same type of connectable. The best example is having multiple material-based table variants (wood & metal), the specific type could be used to prevent connections between different variant types while maintaining connections between the same variant types.
It should also be noted that objects will only connect if they are connected to the tilemap, removing them from the tilemap will disconnect any connections to it. Some objects can be bolted to / unbolted from the tilemap (tables, girders, sofa, etc.), while others also have ways to be attached / detached to the tilemap.
Basic connections use the “Basic Adjacency Connector” script and are ultimately the simplest connection type.
These basic shapes are defined below:
O - A variant with no connections.
U - A variant with 1 connection, to the north.
I - A variant with 2 connections opposite of each other, 1 to the north and 1 to the south.
L - A variant with 2 connections adjacent to each other, 1 to the north, and 1 to the east.
T - A variant shaped like a “T”, with 3 connections, 1 to the south, east, and west.
X - A variant shaped like a “+”, with 4 connections, 1 to the north, east, south, & west.
The basic adjacency shapes for pipes (left) and tables (right)
These pieces can be rotated to create many various shapes. This works fine for objects that do not have corner connections (pipes, cables, etc.), but this won’t suffice for objects that do (tables, walls, etc.) because it will leave gaps where the corners meet.
An example of connected pipes and tables.
The same connected table with indicators of the type of the connectables.
These heavy-duty high-voltage cables are only used between station engines and related machinery.
Two “I” shapes can cross each other while maintaining separate circuits; they do not have a junction box like the similar “X” shape.
Though similar to wires, wires are more complex (see the “Wire Adjacency Connection” section for more details).
Cables. Connectables separated (with indicators) and combined.
Currently, these do not use a “T” or “X” shape so we can either add those or resolve how a straight piece may connect in such a situation as seen in the image (these may need to get their own unique adjacency connector in the future).
Conveyor Belts. Connectables separated (with indicators) and combined.
Heat Exchange Pipes don’t require an “O” shape.
They do however have an special “I” shaped called a “Junction” which connects between the HE pipes and regular pipes on the 4th layer (see the pipe adjacency connections section for more info).
HE Pipes. Connectables separated (with indicators) and combined.
For more info, cinsult Advanced Adjacency Connections