public boolean isNeighbourTo(TileType tileType, Side ... sides) {
        if (sides == null || sides.length == 0)
            return false;
        for (Side s : sides) {
            if (neighbourMaterials.get(s) == null || tileType.neighbourMaterials.get(s.getOppositeSide()) == null || !neighbourMaterials.get(s).equals(tileType.neighbourMaterials.get(s.getOppositeSide())))
                return false;
        }
        return true;
    }