diff options
author | HoleFish <48403212+HoleFish@users.noreply.github.com> | 2024-02-29 02:54:54 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-28 19:54:54 +0100 |
commit | cbaf6ffd6082ce33e1279f29473164f58c7921fd (patch) | |
tree | 605c57b3458710aee31d12cc5fafca7ce9337153 | |
parent | 9c5dce41b06bc840ac46d250d806b3025acb44d2 (diff) | |
download | GT5-Unofficial-cbaf6ffd6082ce33e1279f29473164f58c7921fd.tar.gz GT5-Unofficial-cbaf6ffd6082ce33e1279f29473164f58c7921fd.tar.bz2 GT5-Unofficial-cbaf6ffd6082ce33e1279f29473164f58c7921fd.zip |
Fix Bio Vat internal error & scanner info (#394)
* fix
* add comments
Former-commit-id: dca4780ded78419d4c742b320f3efbd8efebc96c
-rw-r--r-- | src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_BioVat.java | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_BioVat.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_BioVat.java index 9778d5b63d..fa2f7e9590 100644 --- a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_BioVat.java +++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_BioVat.java @@ -260,14 +260,26 @@ public class GT_TileEntity_BioVat extends GT_MetaTileEntity_EnhancedMultiBlockBa @NotNull @Override protected GT_ParallelHelper createParallelHelper(@NotNull GT_Recipe recipe) { - return super.createParallelHelper(recipeWithMultiplier(recipe)); + return super.createParallelHelper(recipeWithMultiplier(recipe, inputFluids)); } }; } - protected GT_Recipe recipeWithMultiplier(GT_Recipe recipe) { + protected GT_Recipe recipeWithMultiplier(GT_Recipe recipe, FluidStack[] fluidInputs) { GT_Recipe tRecipe = recipe.copy(); int multiplier = getExpectedMultiplier(recipe.getFluidOutput(0), true); + mExpectedMultiplier = multiplier; + // Calculate max multiplier limited by input fluids + long fluidAmount = 0; + for (FluidStack fluid : fluidInputs) { + if (recipe.mFluidInputs[0].isFluidEqual(fluid)) { + fluidAmount += fluid.amount; + } + } + multiplier = (int) Math.min(multiplier, fluidAmount / recipe.mFluidInputs[0].amount); + // In case multiplier is 0 + multiplier = Math.max(multiplier, 1); + mTimes = multiplier; tRecipe.mFluidInputs[0].amount *= multiplier; tRecipe.mFluidOutputs[0].amount *= multiplier; return tRecipe; |