From 3025125c5dcc6181a873bd1062fde5d239d2aba5 Mon Sep 17 00:00:00 2001 From: Unknown Date: Tue, 6 Aug 2019 21:21:54 +0800 Subject: 2x2 crafting --- .../me/shedaniel/rei/gui/widget/AutoCraftingButtonWidget.java | 8 ++++++-- .../rei/plugin/autocrafting/AutoCraftingTableHandler.java | 3 ++- src/main/java/me/shedaniel/rei/server/InputSlotCrafter.java | 6 +++--- 3 files changed, 11 insertions(+), 6 deletions(-) (limited to 'src/main/java') diff --git a/src/main/java/me/shedaniel/rei/gui/widget/AutoCraftingButtonWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/AutoCraftingButtonWidget.java index 1640a03b3..bae81875c 100644 --- a/src/main/java/me/shedaniel/rei/gui/widget/AutoCraftingButtonWidget.java +++ b/src/main/java/me/shedaniel/rei/gui/widget/AutoCraftingButtonWidget.java @@ -36,8 +36,12 @@ public class AutoCraftingButtonWidget extends ButtonWidget { public void onPressed() { for (AutoCraftingHandler autoCraftingHandler : RecipeHelper.getInstance().getSortedAutoCraftingHandler()) if (autoCraftingHandler.canHandle(displaySupplier, minecraft, minecraft.currentScreen, containerScreen, ScreenHelper.getLastOverlay())) - if (autoCraftingHandler.handle(displaySupplier, minecraft, minecraft.currentScreen, containerScreen, ScreenHelper.getLastOverlay())) - return; + try { + if (autoCraftingHandler.handle(displaySupplier, minecraft, minecraft.currentScreen, containerScreen, ScreenHelper.getLastOverlay())) + return; + } catch (Exception e) { + e.printStackTrace(); + } minecraft.openScreen(containerScreen); ScreenHelper.getLastOverlay().init(); } diff --git a/src/main/java/me/shedaniel/rei/plugin/autocrafting/AutoCraftingTableHandler.java b/src/main/java/me/shedaniel/rei/plugin/autocrafting/AutoCraftingTableHandler.java index 34e9bb3df..627ac6982 100644 --- a/src/main/java/me/shedaniel/rei/plugin/autocrafting/AutoCraftingTableHandler.java +++ b/src/main/java/me/shedaniel/rei/plugin/autocrafting/AutoCraftingTableHandler.java @@ -20,6 +20,7 @@ import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.ingame.AbstractContainerScreen; import net.minecraft.client.gui.screen.ingame.CraftingTableScreen; +import net.minecraft.client.gui.screen.ingame.InventoryScreen; import net.minecraft.client.gui.screen.recipebook.RecipeBookProvider; import net.minecraft.container.CraftingContainer; import net.minecraft.item.ItemStack; @@ -67,7 +68,7 @@ public class AutoCraftingTableHandler implements AutoCraftingHandler { @Override public boolean canHandle(Supplier displaySupplier, MinecraftClient minecraft, Screen recipeViewingScreen, AbstractContainerScreen parentScreen, ContainerScreenOverlay overlay) { - if (parentScreen instanceof CraftingTableScreen && displaySupplier.get() instanceof DefaultCraftingDisplay && canUseMovePackets()) { + if (displaySupplier.get() instanceof DefaultCraftingDisplay && (parentScreen instanceof CraftingTableScreen || (parentScreen instanceof InventoryScreen && ((DefaultCraftingDisplay) displaySupplier.get()).getWidth() <= 2 && ((DefaultCraftingDisplay) displaySupplier.get()).getHeight() <= 2)) && canUseMovePackets()) { return hasItems(displaySupplier.get().getInput()); } return false; diff --git a/src/main/java/me/shedaniel/rei/server/InputSlotCrafter.java b/src/main/java/me/shedaniel/rei/server/InputSlotCrafter.java index 802e1b79a..77ca3e290 100644 --- a/src/main/java/me/shedaniel/rei/server/InputSlotCrafter.java +++ b/src/main/java/me/shedaniel/rei/server/InputSlotCrafter.java @@ -32,11 +32,11 @@ public class InputSlotCrafter { this.craftingContainer = craftingContainer_1; } - public static void start(CraftingContainer craftingContainer_1, ServerPlayerEntity player, Map> map, boolean shifting) { - new InputSlotCrafter(craftingContainer_1).fillInputSlots(player, map, shifting); + public static void start(CraftingContainer craftingContainer_1, ServerPlayerEntity player, Map> map, boolean hasShift) { + new InputSlotCrafter(craftingContainer_1).fillInputSlots(player, map, hasShift); } - private void fillInputSlots(ServerPlayerEntity player, Map> map, boolean boolean_1) { + private void fillInputSlots(ServerPlayerEntity player, Map> map, boolean hasShift) { this.inventory = player.inventory; if (this.canReturnInputs() || player.isCreative()) { // Return the already placed items on the grid -- cgit