From 740aa65de7b23ef734d60ef7f5a2ea4fec22532c Mon Sep 17 00:00:00 2001 From: slprime <31038811+slprime@users.noreply.github.com> Date: Sat, 21 Jun 2025 20:55:38 +0300 Subject: [PATCH] Add Autocrafting to Crafting Station (#185) Co-authored-by: Caedis --- .../nei/CraftingStationOverlayHandler.java | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/src/main/java/tconstruct/plugins/nei/CraftingStationOverlayHandler.java b/src/main/java/tconstruct/plugins/nei/CraftingStationOverlayHandler.java index 1b71685c..e4fdda57 100644 --- a/src/main/java/tconstruct/plugins/nei/CraftingStationOverlayHandler.java +++ b/src/main/java/tconstruct/plugins/nei/CraftingStationOverlayHandler.java @@ -15,23 +15,28 @@ import tconstruct.tools.logic.CraftingStationLogic; public class CraftingStationOverlayHandler extends DefaultOverlayHandler { @Override - public void overlayRecipe(GuiContainer gui, IRecipeHandler recipe, int recipeIndex, boolean shift) { - if (gui.inventorySlots instanceof CraftingStationContainer) { - final CraftingStationContainer station = (CraftingStationContainer) gui.inventorySlots; - if (station.logic.chest != null && gui instanceof CraftingStationGui) { - offsetx = 5 + ((CraftingStationGui) gui).getChestWidth(); + public void overlayRecipe(GuiContainer gui, IRecipeHandler handler, int recipeIndex, boolean maxTransfer) { + transferRecipe(gui, handler, recipeIndex, maxTransfer ? Integer.MAX_VALUE : 1); + } + + @Override + public int transferRecipe(GuiContainer gui, IRecipeHandler handler, int recipeIndex, int multiplier) { + + if (gui.inventorySlots instanceof CraftingStationContainer stationContainer) { + if (stationContainer.logic.chest != null && gui instanceof CraftingStationGui stationGui) { + offsetx = 5 + stationGui.getChestWidth(); } else { offsetx = 5; } } - super.overlayRecipe(gui, recipe, recipeIndex, shift); + return super.transferRecipe(gui, handler, recipeIndex, multiplier); } @Override public boolean canMoveFrom(Slot slot, GuiContainer gui) { - if (gui.inventorySlots instanceof CraftingStationContainer) { - CraftingStationLogic logic = ((CraftingStationContainer) gui.inventorySlots).logic; + if (gui.inventorySlots instanceof CraftingStationContainer stationContainer) { + CraftingStationLogic logic = stationContainer.logic; if (logic.chest != null && slot.inventory == logic.chest.get()) return true; if (logic.doubleChest != null && slot.inventory == logic.doubleChest.get()) return true; }