diff options
author | miozune <miozune@gmail.com> | 2022-05-27 03:43:52 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-05-26 20:43:52 +0200 |
commit | 9d1caa9a80300b84fd49391cf4af696d5cfcbe29 (patch) | |
tree | 0e676e64e19552f4e729ad0cd27dae26ce201671 /src/main/java | |
parent | f3340fac3d92865505a62ecf3920c6667af975f9 (diff) | |
download | GT5-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.java | 37 |
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)); |