Database of connections. Connections are stored in order of their vertical component. This way connections in an area may be looked up quickly using a binary search.
The workspace's connection type checker, used to decide if connections are valid during a drag.
Add a connection to the database. Should not already exist in the database.
The connection to be added.
The y position used to decide where to insert the connection.
Find all nearby connections to the given connection. Type checking does not apply, since this function is used for bumping.
The connection whose neighbours should be returned.
The maximum radius to another connection.
List of connections.
Remove a connection from the database. Must already exist in DB.
The connection to be removed.
The y position used to find the index of the connection.
Find the closest compatible connection to this connection.
The connection searching for a compatible mate.
The maximum radius to another connection.
Offset between this connection's location in the database and the current location (as a result of dragging).
Contains two properties: 'connection' which is either another connection or null, and 'radius' which is the distance.
Fake class which should be extended to avoid inheriting static properties