private WorldCoordinate getOtherTrackLocation(WorldCoordinate otherCoord) {
        SignalBlock other = getSignalAt(otherCoord);
        if (other != null) {
            WorldCoordinate track = other.getTrackLocation();
            if (track != null)
                trackCache.put(otherCoord, track);
            return track;
        }
        return trackCache.get(otherCoord);
    }