aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUnknown <shekwancheung0528@gmail.com>2019-08-06 21:21:54 +0800
committerUnknown <shekwancheung0528@gmail.com>2019-08-06 21:21:54 +0800
commit3025125c5dcc6181a873bd1062fde5d239d2aba5 (patch)
treecc1265ec52b79f882059a0f838dbe00bd2febaac
parent1b7830412fe76557bbe688355861f96874ee0b1b (diff)
downloadRoughlyEnoughItems-3025125c5dcc6181a873bd1062fde5d239d2aba5.tar.gz
RoughlyEnoughItems-3025125c5dcc6181a873bd1062fde5d239d2aba5.tar.bz2
RoughlyEnoughItems-3025125c5dcc6181a873bd1062fde5d239d2aba5.zip
2x2 crafting
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/AutoCraftingButtonWidget.java8
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/autocrafting/AutoCraftingTableHandler.java3
-rw-r--r--src/main/java/me/shedaniel/rei/server/InputSlotCrafter.java6
3 files changed, 11 insertions, 6 deletions
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<RecipeDisplay> 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<C extends Inventory> {
this.craftingContainer = craftingContainer_1;
}
- public static <C extends Inventory> void start(CraftingContainer<C> craftingContainer_1, ServerPlayerEntity player, Map<Integer, List<ItemStack>> map, boolean shifting) {
- new InputSlotCrafter<C>(craftingContainer_1).fillInputSlots(player, map, shifting);
+ public static <C extends Inventory> void start(CraftingContainer<C> craftingContainer_1, ServerPlayerEntity player, Map<Integer, List<ItemStack>> map, boolean hasShift) {
+ new InputSlotCrafter<C>(craftingContainer_1).fillInputSlots(player, map, hasShift);
}
- private void fillInputSlots(ServerPlayerEntity player, Map<Integer, List<ItemStack>> map, boolean boolean_1) {
+ private void fillInputSlots(ServerPlayerEntity player, Map<Integer, List<ItemStack>> map, boolean hasShift) {
this.inventory = player.inventory;
if (this.canReturnInputs() || player.isCreative()) {
// Return the already placed items on the grid