From b318af16da91dd479644923dfd34f0378ae240c5 Mon Sep 17 00:00:00 2001 From: BlueWeabo Date: Sat, 26 Aug 2023 21:01:40 +0300 Subject: fix ulv recipes being broken again when under 1 tick calculation is taken (#2254) --- src/main/java/gregtech/api/util/GT_OverclockCalculator.java | 3 +++ .../gregtech/overclock/GT_OverclockCalculator_UnitTest.java | 12 ++++++++++++ 2 files changed, 15 insertions(+) (limited to 'src') diff --git a/src/main/java/gregtech/api/util/GT_OverclockCalculator.java b/src/main/java/gregtech/api/util/GT_OverclockCalculator.java index 0e56d097e7..4dd6325817 100644 --- a/src/main/java/gregtech/api/util/GT_OverclockCalculator.java +++ b/src/main/java/gregtech/api/util/GT_OverclockCalculator.java @@ -572,6 +572,9 @@ public class GT_OverclockCalculator { double machineTier = calculateMachinePowerTier(); double recipeTier = calculateRecipePowerTier(heatDiscountMultiplier); double amountOfTotalOverclocks = calculateAmountOfOverclocks(machineTier, recipeTier); + if (recipeVoltage <= GT_Values.V[0]) { + amountOfTotalOverclocks = Math.min(amountOfTotalOverclocks, calculateRecipeToMachineVoltageDifference()); + } return (long) Math.ceil( recipeVoltage * Math.pow(1 << eutIncreasePerOC, amountOfParallelOverclocks + amountOfParallelHeatOverclocks) * Math.pow( diff --git a/src/test/java/gregtech/overclock/GT_OverclockCalculator_UnitTest.java b/src/test/java/gregtech/overclock/GT_OverclockCalculator_UnitTest.java index 5a66d2420b..d9343a9273 100644 --- a/src/test/java/gregtech/overclock/GT_OverclockCalculator_UnitTest.java +++ b/src/test/java/gregtech/overclock/GT_OverclockCalculator_UnitTest.java @@ -6,6 +6,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import org.junit.jupiter.api.Test; +import gregtech.api.enums.TierEU; import gregtech.api.util.GT_OverclockCalculator; class GT_OverclockCalculator_UnitTest { @@ -496,4 +497,15 @@ class GT_OverclockCalculator_UnitTest { .calculate(); assertEquals((7 << 4) * 29, calculator.getConsumption(), messageEUt); } + + @Test + void ulvRecipeWorkCorrectlyWithCalculatingEutUnderOneTick() { + GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(2) + .setEUt(TierEU.UV) + .setParallel(64) + .setDuration(300) + .setAmperage(64) + .setAmperageOC(false); + assertEquals(TierEU.LuV * 64, calculator.calculateEUtConsumptionUnderOneTick(64, 64), messageEUt); + } } -- cgit