From 77b8f9c346c52eda69eb1ca3ee60c3567fadacb4 Mon Sep 17 00:00:00 2001 From: 0xSeb Date: Mon, 2 Nov 2015 15:17:53 +0100 Subject: [PATCH] Optimized Crafting again. Current speed level: Super fast! --- .../manager/ContainerManager.java | 16 ++++++++++------ .../craftingkeys/manager/CraftingManager.java | 19 ++++++++++++++++--- 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/src/main/java/de/skate702/craftingkeys/manager/ContainerManager.java b/src/main/java/de/skate702/craftingkeys/manager/ContainerManager.java index 8e8d15b..3cbb7e0 100644 --- a/src/main/java/de/skate702/craftingkeys/manager/ContainerManager.java +++ b/src/main/java/de/skate702/craftingkeys/manager/ContainerManager.java @@ -32,8 +32,7 @@ public abstract class ContainerManager { protected void handleNumKey() { - // see: http://wiki.vg/Inventory - // hotbar-slots are always the last 9 slots of the currently opened inventory. + // hotbar-slots are always the last 9 slots of the currently opened inventory int hotbarStartIndex = Util.client.thePlayer.openContainer.getInventory().size() - 9 - 1; if (Keyboard.isKeyDown(Keyboard.KEY_1)) { @@ -59,8 +58,8 @@ public abstract class ContainerManager { } moveStackToInventory(-1); - // Minecraft handles the Keyboard-keys as well, that's why we need to clear them first - // see: GuiContainer#keyTyped(char,int); -> checkHotbarKeys + + // Handle Minecraft handling. Ah... while (Keyboard.next()) { } } @@ -146,13 +145,16 @@ public abstract class ContainerManager { // Move some if (destination == null || source.isItemEqual(destination)) { - leftClick(srcIndex); + if (srcIndex > 0) { + leftClick(srcIndex); + } + for (int i = 0; i < movedAmount; i++) { rightClick(destIndex); } // Move back - if (movedAmount < sourceSize) { + if (movedAmount < sourceSize && srcIndex > 0) { leftClick(srcIndex); } @@ -176,6 +178,8 @@ public abstract class ContainerManager { Slot slot = (Slot) (container.inventorySlots.get(index)); return (slot == null) ? null : slot.getStack(); + } else if (index == -1 && Util.client.thePlayer.inventory.getItemStack() != null) { + return Util.client.thePlayer.inventory.getItemStack(); } else { Logger.debug("getItemStack(i)", "Invalid index"); diff --git a/src/main/java/de/skate702/craftingkeys/manager/CraftingManager.java b/src/main/java/de/skate702/craftingkeys/manager/CraftingManager.java index f4225d4..75996ac 100644 --- a/src/main/java/de/skate702/craftingkeys/manager/CraftingManager.java +++ b/src/main/java/de/skate702/craftingkeys/manager/CraftingManager.java @@ -57,6 +57,10 @@ public class CraftingManager extends ContainerManager { // Get from output } else if (isInteractionKeyDown()) { + if (Util.client.thePlayer.inventory.getItemStack() != null) { + moveStackToInventory(-1); + } + if (isStackKeyDown()) { int oldStackSize = -1; @@ -73,8 +77,9 @@ public class CraftingManager extends ContainerManager { clickOnCraftingOutput(); } - // Move - } else if (slotIndex > 0 && currentHoveredSlot != null) { + // Move from hovered slot + } else if (slotIndex > 0 && currentHoveredSlot != null && + Util.client.thePlayer.inventory.getItemStack() == null) { if (isStackKeyDown()) { moveAll(currentHoveredSlot.slotNumber, slotIndex); @@ -83,8 +88,16 @@ public class CraftingManager extends ContainerManager { move(currentHoveredSlot.slotNumber, slotIndex, 1); } - // Handle NumKey-moving + // Handle NumKey-moving and held-moving } else if (Util.client.thePlayer.inventory.getItemStack() != null) { + + if (isStackKeyDown()) { + moveAll(-1, slotIndex); + moveStackToInventory(-1); + } else { + move(-1, slotIndex, 1); + } + handleNumKey(); } }