Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,18 @@ protected static ItemStack createFluidEncoder(FluidStack fluid) {
return fluidEncoder;
}

protected static boolean hasAnyFluids(@Nullable FluidStack[] fluids) {
if (fluids == null)
return false;

for (FluidStack fluid : fluids) {
if (fluid != null && fluid.amount > 0)
return true;
}

return false;
}

public static void transferToTerminal(JEIPacket message, Container con) {
// Get information about the crafting terminal, and do some checks
if (!(con instanceof IContainerCraftingPacket))
Expand All @@ -200,7 +212,7 @@ public static void transferToTerminal(JEIPacket message, Container con) {

// If there are fluids, always use processing mode to avoid slot conflicts in
// crafting mode
boolean hasInputFluids = message.inputFluids != null && message.inputFluids.length > 0;
boolean hasInputFluids = hasAnyFluids(message.inputFluids);
boolean preserveSlots = message.isCraftingRecipe && !hasInputFluids;

ItemStack[] inputStacks = mergeStacks(message.inputItems, message.inputFluids, inputAreaSize,
Expand All @@ -214,7 +226,7 @@ public static void transferToTerminal(JEIPacket message, Container con) {
if (message.isCraftingRecipe)
con.onCraftMatrixChanged(new WrapperInvItemHandler(craftMatrix));
else {
boolean hasOutputFluids = message.outputFluids != null && message.outputFluids.length > 0;
boolean hasOutputFluids = hasAnyFluids(message.outputFluids);
boolean preserveOutputSlots = message.isCraftingRecipe && !hasOutputFluids;

ItemStack[] outputStacks = mergeStacks(message.outputItems, message.outputFluids, outputAreaSize,
Expand Down