2020-06-11 13:33:40 +02:00

58 lines
1.6 KiB
Java

package ruscz.game.gameOfProd.Image;
import ruscz.game.gameOfProd.Scripts.Utils;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.logging.Logger;
/**
* This class images of doors to be painted
*/
public class ImageDoor {
private BufferedImage image;
private BufferedImage[] imagesOfDoor;
private int size;
private static final Logger LOG = Utils.setSettingsToLogger(Logger.getLogger(ImageDoor.class.getName()), "doorimage");
/**
* Parses images of door into an array
* @param rectangles is array of door images
*/
public void setAllImagesOfDoor(Rectangle[] rectangles){
imagesOfDoor = new BufferedImage[4];
if (rectangles.length < 4)
throw new IllegalArgumentException();
for (int j = 0; j < 4; j++) {
BufferedImage img = image.getSubimage(0, size * j * 2, size * 2, size * 2);
imagesOfDoor[j] = img;
}
LOG.fine("All images for door successfully parsed");
}
public ImageDoor(String door, Rectangle[] rectangles) {
try {
String[] doorInfo = door.split(",");
image = ImageIO.read(new File("src/main/resources/tilesets/" + doorInfo[0]));
size = Integer.parseInt(doorInfo[1]);
} catch (IOException e) {
LOG.severe("Door image with name " + door.split(",")[0] + " doesn't exist");
e.printStackTrace();
}
setAllImagesOfDoor(rectangles);
}
public BufferedImage[] getImagesOfDoor() {
return imagesOfDoor;
}
}