aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/gregtech/api/util/GT_OverclockCalculator.java3
-rw-r--r--src/test/java/gregtech/overclock/GT_OverclockCalculator_UnitTest.java10
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);
+ }
}