public int[][] paintImages(int[][] currentBlockArray, int xMin, int xMax, int zMin, int zMax) {
        BufferedImage[] images = getPaintImages("Theme1");
        int h = images[0].getHeight();
        int w = images[0].getWidth();
        int i = 0;
        level = 0;
        wipZMin = zMin;
        wipHeight = h;
        String[] messages = new String[] {"Weem-atizing Elements", "Calculating the 'Epic'", "Removing Mukshapumpa", "Equipping Melvin", "Thanking Testers", "Sneaking up behind you...", "Injecting Bacon" };
        boolean closeToGround = false;
        Game.loadingText = "Making Things Interesting...";
        for(int z = zMin; z <= zMax-h; z += h) {
            if(messages.length > level) {
                Game.loadingText = messages[level];
            }
            for(int x = xMin; x <= xMax-w; x += w) {
                closeToGround = closeToGround(x, z, w, h);
                //System.out.println("closeToGround "+closeToGround);
                if(!closeToGround) {
                    i = getPaintImageIndex(currentBlockArray, images, x, z, xMin, xMax, (z == zMin));
                    if(i > -1) {
                        currentBlockArray = paintImage(currentBlockArray, images[i], x, z);
                    }
                }
            }
            //System.out.println("level");
            lastLevel = (ArrayList)currentLevel.clone();
            currentLevel.clear();
            level++;
            
            //new level
        }
        currentBlockArray = spawnCaves(currentBlockArray, 5, xMin, xMax, zMin, zMax);
        noExitImages.clear();
        return currentBlockArray;
    }