public Chunk loadChunk(String filePath){
		
		InputStream file = ResourceLoader.getResourceAsStream(filePath);
		try {
			BufferedImage chunkImg = ImageIO.read(file);
			/*
			 * Load tilesA
			 */
			for (int x = 0; x < 32; x ++){
				for (int y = 0; y < 32; y ++){
					int rgb = chunkImg.getRGB(x, y);
					int red = (rgb & 0x00ff0000) >> 16;
					int green = (rgb & 0x0000ff00) >> 8;
					int blue = rgb & 0x000000ff;
					
					if (red == 0 && blue == 0 && green == 0){
						tilesA[x][CHUNKDIMENSION - 1 - y] = WALL;	// Y implemented to eliminate vertical flip from BufferedImage->openGL y conversion
					} else if (red == 255 && blue == 0 && green == 0){
						tilesA[x][CHUNKDIMENSION - 1 - y] = BLOOD;
					} else if (red == 255 && blue == 255 && green == 0){
						Spectre spectre = new Spectre(new TextureSprite(x * WALLDIMENSION + this.x, (CHUNKDIMENSION - y) * WALLDIMENSION + this.y, 30, 30, 10, "/data/char/spectre.png"), "default");
						System.out.println("SPECTRE: " + spectre.spectrePosition.getX() + ", " + spectre.spectrePosition.getY());
						Model.spectres.add(spectre);
						Model.sprites.add(spectre);
					}
				}
			}
			/*
			 * Load tilesB
			 */
			for (int x = 33; x < 65; x ++){
				for (int y = 0; y < 32; y ++){
					int rgb = chunkImg.getRGB(x, y);
					int red = (rgb & 0x00ff0000) >> 16;
					int green = (rgb & 0x0000ff00) >> 8;
					int blue = rgb & 0x000000ff;
					
					if (red == 0 && blue == 0 && green == 0){
						tilesB[x - 33][CHUNKDIMENSION - 1 - y] = WALL;	// Y implemented to eliminate vertical flip from BufferedImage->openGL y conversion
					} else if (red == 255 && blue == 0 && green == 0){
						tilesB[x - 33][CHUNKDIMENSION - 1 - y] = BLOOD;
					}
				}
			}
			
		} catch (IOException e) {
			e.printStackTrace();
			System.exit(0);
		}
		return this;
	}