aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common
diff options
context:
space:
mode:
authorHoleFish <48403212+HoleFish@users.noreply.github.com>2024-07-28 23:10:59 +0800
committerGitHub <noreply@github.com>2024-07-28 22:10:59 +0700
commitf8771316cfae2c8ad48c1adc0fac1f596f80ac04 (patch)
tree4139d59b901ebe86c2cbdeef69afbac509e6da92 /src/main/java/gregtech/common
parentb67f335a9a676b137fcd592812e6f85507832c55 (diff)
downloadGT5-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.java18
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);