aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/metatileentity
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/api/metatileentity')
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java41
1 files changed, 26 insertions, 15 deletions
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java
index d964d9a7f1..88d9c1517b 100644
--- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java
+++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java
@@ -795,21 +795,7 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
processingLogic.setInputFluids(getStoredFluids());
if (isInputSeparationEnabled()) {
- for (GT_MetaTileEntity_Hatch_InputBus bus : mInputBusses) {
- if (bus instanceof GT_MetaTileEntity_Hatch_CraftingInput_ME) {
- continue;
- }
- List<ItemStack> inputItems = new ArrayList<>();
- for (int i = bus.getSizeInventory() - 1; i >= 0; i--) {
- ItemStack stored = bus.getStackInSlot(i);
- if (stored != null) {
- inputItems.add(stored);
- }
- }
- if (canUseControllerSlotForRecipe() && getControllerSlot() != null) {
- inputItems.add(getControllerSlot());
- }
- processingLogic.setInputItems(inputItems.toArray(new ItemStack[0]));
+ if (mInputBusses.isEmpty()) {
CheckRecipeResult foundResult = processingLogic.process();
if (foundResult.wasSuccessful()) {
return foundResult;
@@ -818,6 +804,31 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
// Recipe failed in interesting way, so remember that and continue searching
result = foundResult;
}
+ } else {
+ for (GT_MetaTileEntity_Hatch_InputBus bus : mInputBusses) {
+ if (bus instanceof GT_MetaTileEntity_Hatch_CraftingInput_ME) {
+ continue;
+ }
+ List<ItemStack> inputItems = new ArrayList<>();
+ for (int i = bus.getSizeInventory() - 1; i >= 0; i--) {
+ ItemStack stored = bus.getStackInSlot(i);
+ if (stored != null) {
+ inputItems.add(stored);
+ }
+ }
+ if (canUseControllerSlotForRecipe() && getControllerSlot() != null) {
+ inputItems.add(getControllerSlot());
+ }
+ processingLogic.setInputItems(inputItems.toArray(new ItemStack[0]));
+ CheckRecipeResult foundResult = processingLogic.process();
+ if (foundResult.wasSuccessful()) {
+ return foundResult;
+ }
+ if (foundResult != CheckRecipeResultRegistry.NO_RECIPE) {
+ // Recipe failed in interesting way, so remember that and continue searching
+ result = foundResult;
+ }
+ }
}
} else {
List<ItemStack> inputItems = getStoredInputs();