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())); } 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..bb342e2ed04 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,21 @@ 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("\\."); + 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]); + } + public static SlotGroupWidget verticalPlayerInventory(SlotGroupWidget.SlotConsumer slotConsumer) { SlotGroupWidget slotGroupWidget = new SlotGroupWidget(); slotGroupWidget.coverChildren();