From 9d1caa9a80300b84fd49391cf4af696d5cfcbe29 Mon Sep 17 00:00:00 2001 From: miozune Date: Fri, 27 May 2022 03:43:52 +0900 Subject: Fluid Regulator GUI fixes (#1065) * Fluid Regulator GUI fixes * Disallow too large negative value * Fix inputting invalid values in a row does not update textbox * another fix for invalid input * Fix messing around with tick rate can bypass pump limit * tab --- .../common/covers/GT_Cover_FluidRegulator.java | 37 ++++++++++++++++------ 1 file changed, 27 insertions(+), 10 deletions(-) diff --git a/src/main/java/gregtech/common/covers/GT_Cover_FluidRegulator.java b/src/main/java/gregtech/common/covers/GT_Cover_FluidRegulator.java index 7557bf3bfb..f792fcee08 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_FluidRegulator.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_FluidRegulator.java @@ -368,11 +368,21 @@ public class GT_Cover_FluidRegulator extends GT_CoverBehaviorBase maxFlow) { i = maxFlow; warn = true; - } else if (i < 0) { - i = 0; - } - if (coverVariable.speed == i) return; + } else if (i < -maxFlow) { + i = -maxFlow; + warn = true; + } + if (!warn && coverVariable.speed == i) return; coverVariable.speed = (int) i; } else if (box.id == 3) { if (i > TICK_RATE_MAX) { - i = coverVariable.tickRate; - } else if (coverVariable.speed > mTransferRate * i) { - i = Math.min(TICK_RATE_MAX, (coverVariable.speed + mTransferRate - 1) / mTransferRate); + i = TICK_RATE_MAX; + warn = true; + } else if (Math.abs(coverVariable.speed) > mTransferRate * i) { + i = Math.min(TICK_RATE_MAX, (Math.abs(coverVariable.speed) + mTransferRate - 1) / mTransferRate); warn = true; } else if (i < TICK_RATE_MIN) { i = 1; } - if (coverVariable.tickRate == i) return; + if (!warn && coverVariable.tickRate == i) return; coverVariable.tickRate = (int) i; } box.setText(String.valueOf(i)); -- cgit