public void splitAddTexture(T texture, int s, String[] sa){
		BufferedImage image = texture.getImage(); 
	  
		int rows = image.getWidth()/s; 
		int cols = image.getHeight()/s;  
		int chunks = rows * cols;  
		
		int chunkWidth = s; 
		int chunkHeight = s;  
		int count = 0;  
		BufferedImage imgs[] = new BufferedImage[chunks]; 
		for (int x = 0; x < cols; x++) {  
            for (int y = 0; y < rows; y++) {  
                imgs[count] = new BufferedImage(s, s, BufferedImage.TYPE_INT_ARGB);
                Graphics2D gr = imgs[count++].createGraphics();  
                gr.drawImage(image, 0, 0, chunkWidth, chunkHeight, chunkWidth * y, chunkHeight * x, chunkWidth * y + chunkWidth, chunkHeight * x + chunkHeight, null);  
                gr.dispose();  
            }  
        }  
		
		String[] names = sa;
		if(sa == null){
			names = new String[imgs.length];
			for(int i = 0; i < imgs.length; i++){
				names[i] = texture.getName() + i;
			}
		}
		
		if((sa != null && imgs != null) && sa.length < imgs.length){
			for(int i = sa.length; i < imgs.length; i++){
				names[i] = texture.getName() + i;
			}
		}
		
		for(int i = 0; i < imgs.length; i++){
			textures.add(new T(imgs[i], names[i]));
		}
		
	}