diff options
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/gregtech/api/util/GT_OverclockCalculator.java | 17 | ||||
-rw-r--r-- | src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java | 2 |
2 files changed, 17 insertions, 2 deletions
diff --git a/src/main/java/gregtech/api/util/GT_OverclockCalculator.java b/src/main/java/gregtech/api/util/GT_OverclockCalculator.java index 0ca9bf3f46..9a1ad267b0 100644 --- a/src/main/java/gregtech/api/util/GT_OverclockCalculator.java +++ b/src/main/java/gregtech/api/util/GT_OverclockCalculator.java @@ -4,6 +4,8 @@ import java.util.function.Supplier; import javax.annotation.Nonnull; +import gregtech.api.enums.GT_Values; + public class GT_OverclockCalculator { private static final double LOG4 = Math.log(4); @@ -382,12 +384,25 @@ public class GT_OverclockCalculator { private void calculateOverclock() { if (noOverclock) { - calculateFinalRecipeEUt(calculateHeatDiscountMultiplier()); + recipeVoltage = calculateFinalRecipeEUt(calculateHeatDiscountMultiplier()); return; } if (laserOC && amperageOC) { throw new IllegalStateException("Tried to calculate overclock with both laser and amperage overclocking"); } + // ULV recipes are annoying in that those under 8 eut will overclock extra if there is too much amperage for + // them + // And those at 2 eut or 1 eut would overclock one extra more. + if (!amperageOC) { + if (recipeVoltage <= GT_Values.V[0]) { + // What we check here is to be able to remove extra amperage on the machine and also make sure one + // doesn't get more amperage from it + long oldMachineAmperage = machineAmperage; + machineAmperage = recipeVoltage <= 2 ? Math.max(parallel / machineAmperage, 1) + : Math.max(parallel * 4 / machineAmperage, 1); + machineAmperage = Math.min(machineAmperage, oldMachineAmperage); + } + } double heatDiscountMultiplier = calculateHeatDiscountMultiplier(); duration = (int) Math.ceil(duration * speedBoost); if (heatOC) { diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java index 3c254cf1aa..db17a76711 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java @@ -257,7 +257,7 @@ public class GT_MetaTileEntity_ProcessingArray extends GT_Recipe_Map recipeMap = getRecipeMap(); logic.setAvailableVoltage(GT_Values.V[tTier] * (recipeMap != null ? recipeMap.mAmperage : 1)); logic.setAvailableAmperage(getMaxParallel()); - logic.setAmperageOC(true); + logic.setAmperageOC(false); } private void setTierAndMult() { |