Added InventoryManager. New supported GUI in about 10 minutes. Yes, adding new GUIs IS fun :D
This commit is contained in:
@@ -15,6 +15,7 @@ import de.skate702.craftingkeys.config.Config;
|
||||
import de.skate702.craftingkeys.manager.ContainerManager;
|
||||
import de.skate702.craftingkeys.manager.CraftingManager;
|
||||
import de.skate702.craftingkeys.manager.FurnaceManager;
|
||||
import de.skate702.craftingkeys.manager.InventoryManager;
|
||||
import de.skate702.craftingkeys.proxies.CraftingKeysProxy;
|
||||
import de.skate702.craftingkeys.util.Logger;
|
||||
import de.skate702.craftingkeys.util.Util;
|
||||
@@ -114,7 +115,9 @@ public class CraftingKeys {
|
||||
|
||||
} else if (currentScreen instanceof GuiInventory) {
|
||||
|
||||
Logger.warn("onTick()", "Inventory not implemented");
|
||||
ContainerManager con = InventoryManager.getInstance(
|
||||
((GuiInventory) currentScreen).inventorySlots);
|
||||
con.acceptKey();
|
||||
|
||||
} else if (currentScreen instanceof GuiMerchant) {
|
||||
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
package de.skate702.craftingkeys.manager;
|
||||
|
||||
import de.skate702.craftingkeys.util.Logger;
|
||||
import net.minecraft.inventory.Container;
|
||||
|
||||
/**
|
||||
* Manages a Inventory GUI Inventory.
|
||||
*/
|
||||
public class InventoryManager extends ContainerManager {
|
||||
|
||||
private static InventoryManager instance = null;
|
||||
|
||||
/**
|
||||
* Creates a new Crafting Manager with the given container.
|
||||
*
|
||||
* @param container The container from a crafting GUI
|
||||
*/
|
||||
private InventoryManager(Container container) {
|
||||
super(container);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a Crafting Manager Instance operating on the given container
|
||||
*
|
||||
* @param container A container from a GUI
|
||||
* @return manager-singleton
|
||||
*/
|
||||
public static InventoryManager getInstance(Container container) {
|
||||
if (instance == null) {
|
||||
instance = new InventoryManager(container);
|
||||
} else {
|
||||
instance.container = container;
|
||||
}
|
||||
return instance;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int specificKeyToSlotIndex() {
|
||||
|
||||
return mapKeyToSlot(-1, 1, 2, -1, 3, 4, -1, -1, -1);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getInventoryStartIndex() {
|
||||
return 9;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getInteractionSlotIndex() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int[] getDropSlots() {
|
||||
return new int[]{1, 2, 3, 4};
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void interact() {
|
||||
clickOnCraftingOutput();
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends a click on the crafting output
|
||||
*/
|
||||
private void clickOnCraftingOutput() {
|
||||
|
||||
Logger.info("clickOnCraftingOutput()", "Clicked on Crafing Output.");
|
||||
leftClick(0);
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user