From 3f86e881074dc4220aab23cae69f002c62f0b25a Mon Sep 17 00:00:00 2001 From: Moulberry Date: Sun, 25 Oct 2020 09:39:40 +1100 Subject: 1.4.5 --- .../notenoughupdates/BetterContainers.java | 86 ++++++++++++++++------ 1 file changed, 63 insertions(+), 23 deletions(-) (limited to 'src/main/java/io/github/moulberry/notenoughupdates/BetterContainers.java') diff --git a/src/main/java/io/github/moulberry/notenoughupdates/BetterContainers.java b/src/main/java/io/github/moulberry/notenoughupdates/BetterContainers.java index 6a876201..1a7cd803 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/BetterContainers.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/BetterContainers.java @@ -25,6 +25,7 @@ import java.awt.*; import java.awt.image.BufferedImage; import java.io.*; import java.nio.charset.StandardCharsets; +import java.util.HashMap; import java.util.Random; public class BetterContainers { @@ -43,14 +44,19 @@ public class BetterContainers { private static int lastClickedSlot = 0; private static int clickedSlot = 0; private static long clickedSlotMillis = 0; + public static long lastRenderMillis = 0; + + public static HashMap itemCache = new HashMap<>(); + public static boolean lastUsingCached = false; + public static boolean usingCached = false; public static void clickSlot(int slot) { - clickedSlot = slot; clickedSlotMillis = System.currentTimeMillis(); + clickedSlot = slot; } public static int getClickedSlot() { - if(clickedSlotMillis - System.currentTimeMillis() < 200) { + if(System.currentTimeMillis() - clickedSlotMillis < 500) { return clickedSlot; } return -1; @@ -58,11 +64,32 @@ public class BetterContainers { public static void bindHook(TextureManager textureManager, ResourceLocation location) { if(isChestOpen()) { - if(lastClickedSlot != getClickedSlot() || (texture == null && !loaded)) { + Container container = ((GuiChest)Minecraft.getMinecraft().currentScreen).inventorySlots; + if(container instanceof ContainerChest) { + usingCached = true; + IInventory lower = ((ContainerChest)container).getLowerChestInventory(); + int size = lower.getSizeInventory(); + for(int index=0; index