diff options
author | Matej Dipčár <492666@mail.muni.cz> | 2022-09-22 02:01:39 +0200 |
---|---|---|
committer | Matej Dipčár <492666@mail.muni.cz> | 2022-09-23 02:15:54 +0200 |
commit | dd864a65681ab537289071dc16fac0c448855959 (patch) | |
tree | 4ed881e538a552a373bfa60defe85c08bee3f13c /src/main/java/gregtech/common | |
parent | 35fe35757cd1390bdaab9a07fc2014c0f5e36cd4 (diff) | |
download | GT5-Unofficial-dd864a65681ab537289071dc16fac0c448855959.tar.gz GT5-Unofficial-dd864a65681ab537289071dc16fac0c448855959.tar.bz2 GT5-Unofficial-dd864a65681ab537289071dc16fac0c448855959.zip |
Make `parseTextBox` and `GT_GuiShortTextBox` more abstract
Diffstat (limited to 'src/main/java/gregtech/common')
-rw-r--r-- | src/main/java/gregtech/common/covers/redstone/GT_Cover_AdvancedWirelessRedstoneBase.java | 34 | ||||
-rw-r--r-- | src/main/java/gregtech/common/covers/redstone/GT_Cover_WirelessFluidDetector.java | 2 |
2 files changed, 24 insertions, 12 deletions
diff --git a/src/main/java/gregtech/common/covers/redstone/GT_Cover_AdvancedWirelessRedstoneBase.java b/src/main/java/gregtech/common/covers/redstone/GT_Cover_AdvancedWirelessRedstoneBase.java index 6fd4ab7339..1633b2f05e 100644 --- a/src/main/java/gregtech/common/covers/redstone/GT_Cover_AdvancedWirelessRedstoneBase.java +++ b/src/main/java/gregtech/common/covers/redstone/GT_Cover_AdvancedWirelessRedstoneBase.java @@ -256,7 +256,7 @@ public abstract class GT_Cover_AdvancedWirelessRedstoneBase<T extends GT_Cover_A long step = Math.max(1, Math.abs(delta / 120)); step = (isShiftKeyDown() ? shiftStep : isCtrlKeyDown() ? ctrlStep : baseStep) * (delta > 0 ? step : -step); - long value = parseTextBox(box) + step; + long value = parseTextBox(box, minValue, maxValue) + step; if (value > maxValue) value = maxValue; else if (value < minValue) value = minValue; @@ -306,29 +306,41 @@ public abstract class GT_Cover_AdvancedWirelessRedstoneBase<T extends GT_Cover_A update(); } - protected int parseTextBox(GT_GuiIntegerTextBox box) { + protected int parseTextBox(GT_GuiIntegerTextBox box, int min, int max) { String text = box.getText(); if (text == null) { return 0; } - long frequency; + long value; try { - frequency = Long.parseLong(text.trim()); + value = Long.parseLong(text.trim()); } catch (NumberFormatException e) { return 0; } - if (frequency > Integer.MAX_VALUE) frequency = Integer.MAX_VALUE; - else if (frequency < 0) frequency = 0; - - return (int) frequency; + if (value >= max) return max; + else if (value < min) return min; + return (int) value; + } + + protected int parseTextBox(GT_GuiIntegerTextBox box) { + return parseTextBox(box, 0, Integer.MAX_VALUE); } - private class GT_GuiShortTextBox extends GT_GuiIntegerTextBox { + protected class GT_GuiShortTextBox extends GT_GuiIntegerTextBox { - public GT_GuiShortTextBox(IGuiScreen gui, int id, int x, int y, int width, int height) { + private final int min; + private final int max; + + public GT_GuiShortTextBox(IGuiScreen gui, int id, int x, int y, int width, int height, int min, int max) { super(gui, id, x, y, width, height); + this.min = min; + this.max = max; + } + + public GT_GuiShortTextBox(IGuiScreen gui, int id, int x, int y, int width, int height) { + this(gui, id, x, y, width, height, 0, Integer.MAX_VALUE); } @Override @@ -337,7 +349,7 @@ public abstract class GT_Cover_AdvancedWirelessRedstoneBase<T extends GT_Cover_A String text = getText().trim(); if (text.length() > 0) { - setText(String.valueOf(parseTextBox(this))); + setText(String.valueOf(parseTextBox(this, min, max))); } return true; diff --git a/src/main/java/gregtech/common/covers/redstone/GT_Cover_WirelessFluidDetector.java b/src/main/java/gregtech/common/covers/redstone/GT_Cover_WirelessFluidDetector.java index ea86b79043..8985f24259 100644 --- a/src/main/java/gregtech/common/covers/redstone/GT_Cover_WirelessFluidDetector.java +++ b/src/main/java/gregtech/common/covers/redstone/GT_Cover_WirelessFluidDetector.java @@ -125,7 +125,7 @@ public class GT_Cover_WirelessFluidDetector extends GT_Cover_AdvancedRedstoneTra public FluidTransmitterGUI(byte aSide, int aCoverID, FluidTransmitterData aCoverVariable, ICoverable aTileEntity) { super(aSide, aCoverID, aCoverVariable, aTileEntity, 1, 2); - thresholdBox = new GT_GuiIntegerTextBox(this,1, 1 + startX, 2 + startY, spaceX * 5 - 4, 12); + thresholdBox = new GT_GuiShortTextBox(this,1, 1 + startX, 2 + startY, spaceX * 5 - 4, 12); } @Override |