aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authormiozune <miozune@gmail.com>2022-05-27 03:43:52 +0900
committerGitHub <noreply@github.com>2022-05-26 20:43:52 +0200
commit9d1caa9a80300b84fd49391cf4af696d5cfcbe29 (patch)
tree0e676e64e19552f4e729ad0cd27dae26ce201671 /src/main/java
parentf3340fac3d92865505a62ecf3920c6667af975f9 (diff)
downloadGT5-Unofficial-9d1caa9a80300b84fd49391cf4af696d5cfcbe29.tar.gz
GT5-Unofficial-9d1caa9a80300b84fd49391cf4af696d5cfcbe29.tar.bz2
GT5-Unofficial-9d1caa9a80300b84fd49391cf4af696d5cfcbe29.zip
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
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/gregtech/common/covers/GT_Cover_FluidRegulator.java37
1 files 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<GT_Cover_Fluid
new GT_GuiIconButton(this, 3, startX + spaceX * 1, startY + spaceY * 1, GT_GuiIcon.REDSTONE_ON).setTooltipText(GT_Utility.trans("225", "Active with Redstone Signal"));
new GT_GuiIconButton(this, 4, startX + spaceX * 2, startY + spaceY * 1, GT_GuiIcon.REDSTONE_OFF).setTooltipText(GT_Utility.trans("226", "Inactive with Redstone Signal"));
- tBox = new GT_GuiIntegerTextBox(this, 2, startX + spaceX * 0, startY + spaceY * 2 + 2, spaceX * 4 - 3, 12);
+ tBox = new GT_GuiIntegerTextBox(this, 2, startX + spaceX * 0, startY + spaceY * 2 + 2, spaceX * 4 - 3, 12) {
+ @Override
+ public boolean validChar(char c, int key) {
+ return super.validChar(c, key) || c == '-';
+ }
+ };
tBox.setText(String.valueOf(this.coverVariable.speed));
tBox.setMaxStringLength(10);
- lBox = new GT_GuiIntegerTextBox(this, 3, startX + spaceX * 5, startY + spaceY * 2 + 2, spaceX * 2 - 3, 12);
+ lBox = new GT_GuiIntegerTextBox(this, 3, startX + spaceX * 5, startY + spaceY * 2 + 2, spaceX * 2 - 3, 12) {
+ @Override
+ public boolean validChar(char c, int key) {
+ return super.validChar(c, key) || c == '-';
+ }
+ };
lBox.setText(String.valueOf(this.coverVariable.tickRate));
lBox.setMaxStringLength(4);
}
@@ -401,6 +411,11 @@ public class GT_Cover_FluidRegulator extends GT_CoverBehaviorBase<GT_Cover_Fluid
case 0:
case 1:
coverVariable.speed *= -1;
+ for (GT_GuiIntegerTextBox box : textBoxes){
+ if (box.id == 2) {
+ box.setText(String.valueOf(coverVariable.speed));
+ }
+ }
break;
case 2:
case 3:
@@ -456,21 +471,23 @@ public class GT_Cover_FluidRegulator extends GT_CoverBehaviorBase<GT_Cover_Fluid
if (i > 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));