private boolean canDoOpToChunk(int x, int z, int op)
    {
        if (x < 0 || x >= xSize)
            return false;
        if (z < 0 || z >= zSize)
            return false;
        if (chunks[x][z] == null)
            return false;
        if (chunks[x][z].opsDone[op])
            return false;

        for (int xx = x - 2; xx <= x + 2; xx++)
            for (int zz = z - 2; zz <= z + 2; zz++)
                if (!isChunkOpDone(xx, zz, op - 1))
                    return false;

        return true;
    }