package de.skate702.craftingkeys.manager; import de.skate702.craftingkeys.util.Logger; import net.minecraft.inventory.Container; /** * Manages a Villager GUI Inventory. */ public class VillagerManager extends ContainerManager { private static VillagerManager instance = null; /** * Creates a new Villager Manager with the given container. * * @param container The container from a crafting GUI */ private VillagerManager(Container container) { super(container); } /** * Returns a Villager Manager Instance operating on the given container * * @param container A container from a GUI * @return manager-singleton */ public static VillagerManager getInstance(Container container) { if (instance == null) { instance = new VillagerManager(container); } else { instance.container = container; } return instance; } @Override protected int specificKeyToSlotIndex() { return mapKeyToSlot(-1, 0, 1, -1, 0, 1, -1, -1, -1); } @Override protected int getInventoryStartIndex() { return 3; } @Override protected int getInteractionSlotIndex() { return 2; } @Override protected int[] getDropSlots() { return new int[]{0, 1}; } @Override protected void interact() { clickOnVillagerOutput(); } /** * Sends a click on the furnace output */ private void clickOnVillagerOutput() { Logger.info("clickOnVillagerOutput()", "Clicked on Villager Output."); leftClick(2); } }