From 263765914c33aecfbb14b5a5b7cd0d2a5465c44d Mon Sep 17 00:00:00 2001 From: DilithiumThoride Date: Thu, 10 Sep 2026 22:39:40 -0500 Subject: [PATCH 1/3] Bucket Mode Toggle changes associated display line format --- .../gtceu/common/mui/GTMuiWidgets.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/gregtechceu/gtceu/common/mui/GTMuiWidgets.java b/src/main/java/com/gregtechceu/gtceu/common/mui/GTMuiWidgets.java index 90d386d5b19..3ca9d861c1d 100644 --- a/src/main/java/com/gregtechceu/gtceu/common/mui/GTMuiWidgets.java +++ b/src/main/java/com/gregtechceu/gtceu/common/mui/GTMuiWidgets.java @@ -574,8 +574,8 @@ public static ParentWidget createIntInputWithBucketMode(IntSyncValue intSyncV EnumSyncValue bucketModeSyncValue, IntSupplier maxMB) { StringSyncValue formattedValue = new StringSyncValue( - () -> String.valueOf(intSyncValue.getValue()), - (v) -> intSyncValue.setValue(Integer.parseInt(v), true, + () -> formattedBucketValue(intSyncValue.getIntValue(), bucketModeSyncValue.getValue()), + (v) -> intSyncValue.setValue(bucketsFromFormattedValue(v, bucketModeSyncValue.getValue()), true, true)) .allowC2S(); @@ -630,6 +630,20 @@ public boolean onMouseScrolled(double delta) { .stateOverlay(1, BucketMode.MILLI_BUCKET.icon.asIcon().size(16))); } + public static String formattedBucketValue(int millibuckets, BucketMode bucketMode) { + if (bucketMode == BucketMode.MILLI_BUCKET) return String.valueOf(millibuckets); + StringBuilder buckets = new StringBuilder(String.format("%04d", millibuckets)); + buckets.insert(buckets.length() - 3, '.'); + return buckets.toString(); + } + + public static int bucketsFromFormattedValue(String uiInput, BucketMode bucketMode) { + if (bucketMode == BucketMode.MILLI_BUCKET) return Integer.parseInt(uiInput); + if (!uiInput.contains(".")) return Integer.parseInt(uiInput) * 1000; + String[] splitInput = uiInput.split("\\."); + return (Integer.parseInt(splitInput[0]) * 1000) + Integer.parseInt(splitInput[1]); + } + public static SlotGroupWidget verticalPlayerInventory(SlotGroupWidget.SlotConsumer slotConsumer) { SlotGroupWidget slotGroupWidget = new SlotGroupWidget(); slotGroupWidget.coverChildren(); From c9ec1b7bfb8f27c66768083e94f5dc8524cfdc74 Mon Sep 17 00:00:00 2001 From: DilithiumThoride Date: Thu, 10 Sep 2026 22:39:42 -0500 Subject: [PATCH 2/3] Uncap Regulator SupplyExact/KeepExact limit (in accordance with Robot Arms being "uncapped") --- .../com/gregtechceu/gtceu/common/cover/FluidRegulatorCover.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/gregtechceu/gtceu/common/cover/FluidRegulatorCover.java b/src/main/java/com/gregtechceu/gtceu/common/cover/FluidRegulatorCover.java index 92080aec977..621a5725af0 100644 --- a/src/main/java/com/gregtechceu/gtceu/common/cover/FluidRegulatorCover.java +++ b/src/main/java/com/gregtechceu/gtceu/common/cover/FluidRegulatorCover.java @@ -179,7 +179,7 @@ public void createCoverUIRows(Flow column, SidedPosGuiData data, PanelSyncManage GTMuiCoverUtil.addTransferModeRow(column, transferMode); column.child( - GTMuiWidgets.createIntInputWithBucketMode(transferSize, transferBucketMode, () -> maxFluidTransferRate) + GTMuiWidgets.createIntInputWithBucketMode(transferSize, transferBucketMode, () -> Integer.MAX_VALUE) .setEnabledIf($ -> shouldShowTransferSize())); } From 1f503b03d1680d4f72df74248ac52c2fd1012fb6 Mon Sep 17 00:00:00 2001 From: DilithiumThoride Date: Sun, 13 Sep 2026 06:27:55 -0500 Subject: [PATCH 3/3] cut input to only 3 decimals --- src/main/java/com/gregtechceu/gtceu/common/mui/GTMuiWidgets.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/gregtechceu/gtceu/common/mui/GTMuiWidgets.java b/src/main/java/com/gregtechceu/gtceu/common/mui/GTMuiWidgets.java index 3ca9d861c1d..bb342e2ed04 100644 --- a/src/main/java/com/gregtechceu/gtceu/common/mui/GTMuiWidgets.java +++ b/src/main/java/com/gregtechceu/gtceu/common/mui/GTMuiWidgets.java @@ -641,6 +641,7 @@ public static int bucketsFromFormattedValue(String uiInput, BucketMode bucketMod if (bucketMode == BucketMode.MILLI_BUCKET) return Integer.parseInt(uiInput); if (!uiInput.contains(".")) return Integer.parseInt(uiInput) * 1000; String[] splitInput = uiInput.split("\\."); + if (splitInput.length > 1 && splitInput[1].length() > 3) splitInput[1] = splitInput[1].substring(0, 3); return (Integer.parseInt(splitInput[0]) * 1000) + Integer.parseInt(splitInput[1]); }