diff options
-rw-r--r-- | src/main/java/gregtech/api/util/GT_OverclockCalculator.java | 3 | ||||
-rw-r--r-- | src/test/java/gregtech/overclock/GT_OverclockCalculator_UnitTest.java | 10 |
2 files changed, 13 insertions, 0 deletions
diff --git a/src/main/java/gregtech/api/util/GT_OverclockCalculator.java b/src/main/java/gregtech/api/util/GT_OverclockCalculator.java index f07a60f822..ab32772c78 100644 --- a/src/main/java/gregtech/api/util/GT_OverclockCalculator.java +++ b/src/main/java/gregtech/api/util/GT_OverclockCalculator.java @@ -233,6 +233,9 @@ public class GT_OverclockCalculator { .ceil(mRecipeEUt * mParallel * mRecipeAmps * mEUtDiscount * heatDiscountMultiplier)) << mEUtIncreasePerOC; while (tTierDifference > 0 && tNextConsumption < mEUt * mAmps) { + if (mDuration <= 1) { + break; + } mRecipeEUt <<= mEUtIncreasePerOC; mDuration >>= mDurationDecreasePerOC; tNextConsumption <<= mEUtIncreasePerOC; diff --git a/src/test/java/gregtech/overclock/GT_OverclockCalculator_UnitTest.java b/src/test/java/gregtech/overclock/GT_OverclockCalculator_UnitTest.java index 38d05d32f2..5f2c4632ce 100644 --- a/src/test/java/gregtech/overclock/GT_OverclockCalculator_UnitTest.java +++ b/src/test/java/gregtech/overclock/GT_OverclockCalculator_UnitTest.java @@ -333,4 +333,14 @@ class GT_OverclockCalculator_UnitTest { assertEquals(1024 >> 3, calculator.getDuration(), messageDuration); assertEquals(correctConsumption, calculator.getConsumption(), messageEUt); } + + @Test + void ulvRecipeStopsWhenOneTicked_Test() { + GT_OverclockCalculator calculator = new GT_OverclockCalculator().setRecipeEUt(VP[0]) + .setEUt(V[6]) + .setDuration(1) + .calculate(); + assertEquals(1, calculator.getDuration(), messageDuration); + assertEquals(VP[0], calculator.getConsumption(), messageEUt); + } } |