PowerMiner/src/InventorySlot.java

52 lines
1.7 KiB
Java

import java.awt.Point;
import java.awt.Rectangle;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class InventorySlot {
private static final int INVENTORY_SLOT_WIDTH = 171 / 4;
private static final int INVENTORY_SLOT_HEIGHT = 254 / 7;
Rectangle rectangleToCapture;
BufferedImage inventorySlotImage;
public InventorySlot(int row, int column) {
initializeRectangleToCapture(row, column);
}
private void initializeRectangleToCapture(int row, int column) {
rectangleToCapture = new Rectangle(row * INVENTORY_SLOT_WIDTH, column * INVENTORY_SLOT_HEIGHT, INVENTORY_SLOT_WIDTH, INVENTORY_SLOT_HEIGHT);
}
public void updateInventorySlot(BufferedImage image) throws IOException {
this.inventorySlotImage = image.getSubimage(rectangleToCapture.x, rectangleToCapture.y, rectangleToCapture.width, rectangleToCapture.height);
}
public String getItemNameInInventorySlot(InventoryItems items) {
return items.getNameOfItemFromImage(this.inventorySlotImage);
}
public boolean isInventorySlotEmpty(InventoryItems items) {
return (items.getNameOfItemFromImage(this.inventorySlotImage).equals("empty"));
}
public Point getClickablePointWithinItemSlot() {
return new Point(INVENTORY_SLOT_WIDTH / 2, INVENTORY_SLOT_HEIGHT / 2);
}
// For test image generation only
/*public void writeInventorySlotImage(BufferedImage image, int row, int column) throws IOException {
updateInventorySlot(image);
ImageIO.write(this.inventorySlotImage, "png", new File(getImageName(row, column)));
}
// For test image generation only
private String getImageName(int row, int column) {
return ("/home/dpapp/Desktop/RunescapeAIPics/InventorySlots/inventorySlot_" + row + "_" + column + ".png");
}*/
}