default boolean updateExternals() {
        long connMap = 0L;

        for (int s = 0; s < 6; s++) {
            if (discoverStraightCenter(s)) connMap |= 0x1000000L << s;

            for (int edgeRot = 0; edgeRot < 4; edgeRot++) {
                if (discoverStraight(s, edgeRot)) {
                    connMap |= (0x1L << edgeRot) << s * 4;
                }
            }

            for (int edgeRot = 0; edgeRot < 4; edgeRot++) {
                if (discoverCorner(s, edgeRot)) {
                    connMap |= (0x100000000L << edgeRot) << s * 4;
                }
            }
        }

        if (connMap != getConnMap()) {
            setConnMap(connMap);
            onMaskChanged();
            return true;
        }
        return false;
    }
Full block connection mask
<p>
0000 0000 EEEE WWWW SSSS NNNN UUUU DDDD | 00FF FFFF EEEE WWWW SSSS NNNN UUUU DDDD
<p>
For a full block, you can connect through all 6 sides, with 5 connections on each side. (1 through center, and 4 edges)
<p>
First 8 nibbles, straight connections, of nibble of 1 << r where r is a Rotation.rotationTo(blockSide, edgeSide)
D - Down
U - Up
N - North
S - South
W - West
E - East
F - Straight connections to center part or another full block
<p>
Second 8 nibbles, corner face connections:
D - Down
U - Up
N - North
S - South
W - West
E - East
core/src/main/java/mrtjp/projectred/core/tile/IConnectableBlockEntity.java