package com.theducecat.blockdude;
import java.awt.Color;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import javax.imageio.ImageIO;
public class LevelLoader {
private Block block;
private BufferedImage levelImage;
private int width;
private int height;
private ArrayList<ArrayList<Block>> blocks;
public LevelLoader(String src) {
try {
levelImage = ImageIO.read(new File(src));
} catch (IOException e) {
e.printStackTrace();
}
width = levelImage.getWidth();
height = levelImage.getHeight();
blocks = new ArrayList<ArrayList<Block>>();
for (int i = 0; i < height; i++) {
blocks.add(new ArrayList<Block>());
for (int j = 0; j < width; j++) {
// Color Check. Possibly its own class?
//blocks.get(i).add(Block.BLOCK);
int currentPixelColor = levelImage.getRGB(j, i);
Color color = new Color(currentPixelColor, true);
// make new Color(r, g, b) use the equals
// function to check between the set red, green, and blue values.
//System.out.println(color.getAlpha() + " " + color.getRed() + " " + color.getGreen() + " " + color.getBlue());
if (color.equals(PixelColor.WHITE)) {
blocks.get(i).add(Block.BLOCK);
}
else if (color.equals(PixelColor.RED)) {
blocks.get(i).add(Block.BRICK);
}
else if (color.equals(PixelColor.BLUE)) {
blocks.get(i).add(Block.SPAWN);
}
else if (color.equals(PixelColor.BLACK)) {
blocks.get(i).add(Block.DOOR);
}
else if (color.equals(PixelColor.TRANSPARENT)) {
//Add white picture?
blocks.get(i).add(Block.AIR);
}
}
}
}
public ArrayList<ArrayList<Block>> getBlocks() {
return blocks;
}
}