From fed3d7d5ad56204d31b5fffffb2a026f3020efcc Mon Sep 17 00:00:00 2001 From: chochem <40274384+chochem@users.noreply.github.com> Date: Fri, 3 May 2024 19:32:47 +0100 Subject: Slight change to ampoc logic (#2590) * better safeguard for negative oc count. * add new unit test --- src/main/java/gregtech/api/util/GT_OverclockCalculator.java | 10 +++++----- .../gregtech/overclock/GT_OverclockCalculator_UnitTest.java | 12 ++++++++++++ 2 files changed, 17 insertions(+), 5 deletions(-) (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 a551e34ff9..609a196e80 100644 --- a/src/main/java/gregtech/api/util/GT_OverclockCalculator.java +++ b/src/main/java/gregtech/api/util/GT_OverclockCalculator.java @@ -428,11 +428,11 @@ public class GT_OverclockCalculator { if (!amperageOC) { overclockCount = Math.min(overclockCount, calculateRecipeToMachineVoltageDifference()); } - if (overclockCount < 0) { - recipeVoltage = Long.MAX_VALUE; - duration = Integer.MAX_VALUE; - return; - } + + // Not just a safeguard. This also means that you can run a 1.2A recipe on a single hatch for a regular gt + // multi. + // This is intended, including the fact that you don't get an OC with a one tier upgrade in that case. + overclockCount = Math.max(overclockCount, 0); overclockCount = limitOverclocks ? Math.min(maxOverclocks, overclockCount) : overclockCount; heatOverclockCount = Math.min(heatOverclockCount, overclockCount); diff --git a/src/test/java/gregtech/overclock/GT_OverclockCalculator_UnitTest.java b/src/test/java/gregtech/overclock/GT_OverclockCalculator_UnitTest.java index ba6769d3d6..e1560b27cb 100644 --- a/src/test/java/gregtech/overclock/GT_OverclockCalculator_UnitTest.java +++ b/src/test/java/gregtech/overclock/GT_OverclockCalculator_UnitTest.java @@ -583,4 +583,16 @@ class GT_OverclockCalculator_UnitTest { assertEquals(expectedDuration, calculator.getDuration(), messageDuration); assertEquals(VP[6], calculator.getConsumption(), messageEUt); } + + @Test + void slightlyOverOneAmpRecipeWorksWithSingleEnergyHatch() { + GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(614400) + .setEUt(TierEU.UV) + .setDuration(600) + .setAmperage(2) + .setAmperageOC(false) + .calculate(); + assertEquals(600, calculator.getDuration(), messageDuration); + assertEquals(614400, calculator.getConsumption(), messageEUt); + } } -- cgit