diff options
author | HoleFish <48403212+HoleFish@users.noreply.github.com> | 2024-07-28 23:10:59 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-07-28 22:10:59 +0700 |
commit | f8771316cfae2c8ad48c1adc0fac1f596f80ac04 (patch) | |
tree | 4139d59b901ebe86c2cbdeef69afbac509e6da92 /src/main/java/gregtech/common | |
parent | b67f335a9a676b137fcd592812e6f85507832c55 (diff) | |
download | GT5-Unofficial-f8771316cfae2c8ad48c1adc0fac1f596f80ac04.tar.gz GT5-Unofficial-f8771316cfae2c8ad48c1adc0fac1f596f80ac04.tar.bz2 GT5-Unofficial-f8771316cfae2c8ad48c1adc0fac1f596f80ac04.zip |
Fix plasma mixer power consumption and overflow (#2778)
* fix
* better fix
Diffstat (limited to 'src/main/java/gregtech/common')
-rw-r--r-- | src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_TranscendentPlasmaMixer.java | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_TranscendentPlasmaMixer.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_TranscendentPlasmaMixer.java index c36a524971..2dba9e7c9d 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_TranscendentPlasmaMixer.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_TranscendentPlasmaMixer.java @@ -172,24 +172,30 @@ public class GT_MetaTileEntity_TranscendentPlasmaMixer protected ProcessingLogic createProcessingLogic() { return new ProcessingLogic() { + BigInteger recipeEU; + @NotNull @Override protected CheckRecipeResult validateRecipe(@Nonnull GT_Recipe recipe) { - mWirelessEUt = 10L * (long) recipe.mEUt * (long) multiplier; - if (getUserEU(ownerUUID).compareTo(BigInteger.valueOf(mWirelessEUt * recipe.mDuration)) < 0) { - return CheckRecipeResultRegistry.insufficientPower(mWirelessEUt * recipe.mDuration); + BigInteger availableEU = getUserEU(ownerUUID); + recipeEU = BigInteger.valueOf(10L * recipe.mEUt * recipe.mDuration); + if (availableEU.compareTo(recipeEU) < 0) { + return CheckRecipeResultRegistry.insufficientStartupPower(recipeEU); } + maxParallel = availableEU.divide(recipeEU) + .min(BigInteger.valueOf(maxParallel)) + .intValue(); return CheckRecipeResultRegistry.SUCCESSFUL; } @NotNull @Override protected CheckRecipeResult onRecipeStart(@Nonnull GT_Recipe recipe) { - mWirelessEUt = 10L * (long) recipe.mEUt * (long) multiplier; + BigInteger finalConsumption = recipeEU.multiply(BigInteger.valueOf(-calculatedParallels)); // This will void the inputs if wireless energy has dropped // below the required amount between validateRecipe and here. - if (!addEUToGlobalEnergyMap(ownerUUID, -mWirelessEUt * recipe.mDuration)) { - return CheckRecipeResultRegistry.insufficientPower(mWirelessEUt * recipe.mDuration); + if (!addEUToGlobalEnergyMap(ownerUUID, finalConsumption)) { + return CheckRecipeResultRegistry.insufficientStartupPower(finalConsumption); } // Energy consumed all at once from wireless net. setCalculatedEut(0); |