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; } }