From 3a123c3eb03e799a41b0c5c6afc74b9b3715c825 Mon Sep 17 00:00:00 2001 From: GDCloud <93287602+GDCloudstrike@users.noreply.github.com> Date: Thu, 12 Jan 2023 17:37:48 +0100 Subject: Fix volcanus batch mode (#493) --- .../advanced/GregtechMetaTileEntity_Adv_EBF.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/main') diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_EBF.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_EBF.java index 4e1844f539..9f0edb810d 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_EBF.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_EBF.java @@ -329,6 +329,19 @@ public class GregtechMetaTileEntity_Adv_EBF extends GregtechMeta_MultiBlockBase< return false; } + if (mUseMultiparallelMode) { + int extraParallelRecipes = 0; + for (; + extraParallelRecipes + parallelRecipes < aMaxParallelRecipes * MAX_BATCH_SIZE; + extraParallelRecipes++) { + if (!tRecipe.isRecipeInputEqual(true, aFluidInputs, aItemInputs)) { + break; + } + } + batchMultiplier = 1.0f + (float) extraParallelRecipes / aMaxParallelRecipes; + parallelRecipes += extraParallelRecipes; + } + // -- Try not to fail after this point - inputs have already been consumed! -- // Convert speed bonus to duration multiplier @@ -367,6 +380,10 @@ public class GregtechMetaTileEntity_Adv_EBF extends GregtechMeta_MultiBlockBase< this.mMaxProgresstime = Math.max(1, this.mMaxProgresstime); + if (mUseMultiparallelMode) { + mMaxProgresstime = (int) Math.ceil(mMaxProgresstime * batchMultiplier); + } + // Collect fluid outputs FluidStack[] tOutputFluids = new FluidStack[tRecipe.mFluidOutputs.length]; for (int h = 0; h < tRecipe.mFluidOutputs.length; h++) { -- cgit