58 lines
1.6 KiB
Java
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;
|
|
}
|
|
}
|