diff --git a/src/main/java/com/simibubi/create/compat/jei/category/SpoutCategory.java b/src/main/java/com/simibubi/create/compat/jei/category/SpoutCategory.java index 3fa7d3160..cd810c034 100644 --- a/src/main/java/com/simibubi/create/compat/jei/category/SpoutCategory.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/SpoutCategory.java @@ -63,7 +63,16 @@ public class SpoutCategory extends CreateRecipeCategory { if (!capability.isPresent()) continue; + var existingFluidHandler = capability.orElse(null); + int numTanks = existingFluidHandler.getTanks(); + FluidStack existingFluid = numTanks == 1 ? existingFluidHandler.getFluidInTank(0) : FluidStack.EMPTY; + for (FluidStack fluidStack : fluidStacks) { + // Hoist the fluid equality check to avoid the work of copying the stack + populating capabilities + // when most fluids will not match + if (numTanks == 1 && (!existingFluid.isEmpty() && !existingFluid.isFluidEqual(fluidStack))) { + continue; + } ItemStack copy = stack.copy(); copy.getCapability(ForgeCapabilities.FLUID_HANDLER_ITEM) .ifPresent(fhi -> {